
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Removing unreachable block (ram,0x0004f130) */
/* WARNING: Removing unreachable block (ram,0x0004f13e) */
/* WARNING: Removing unreachable block (ram,0x0004f143) */
/* WARNING: Removing unreachable block (ram,0x0004f14d) */
/* WARNING: Removing unreachable block (ram,0x0004f160) */
/* WARNING: Removing unreachable block (ram,0x0004f162) */
/* WARNING: Removing unreachable block (ram,0x0004f16b) */
/* WARNING: Removing unreachable block (ram,0x0004f1b0) */
/* WARNING: Removing unreachable block (ram,0x0004ff80) */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void relocate_section(Target_i386 * this, Relocate_info<32,_false> *
   relinfo, uint sh_type, uchar * prelocs, size_t reloc_count, Output_section * output_section, bool
   needs_special_offset_handling, uchar * view, Elf_Addr address, section_size_type view_size,
   Reloc_symbol_changes * reloc_symbol_changes) */

void __thiscall
anon_unknown.dwarf_217836::Target_i386::relocate_section
          (Target_i386 *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          uchar *view,Elf_Addr address,section_size_type view_size,
          Reloc_symbol_changes *reloc_symbol_changes)

{
  byte bVar1;
  _func_int_varargs **pp_Var2;
  _func_int_varargs *p_Var3;
  undefined **ppuVar4;
  Elf_Addr EVar5;
  Symbol_table *pSVar6;
  int *piVar7;
  code *pcVar8;
  Output_data_plt_i386 *pOVar9;
  Sized_relobj_file<32,_false> *pSVar10;
  pointer pSVar11;
  pointer ppSVar12;
  pointer ppOVar13;
  pointer pcVar14;
  size_type sVar15;
  Value *pVVar16;
  undefined1 *puVar17;
  bool bVar18;
  byte bVar19;
  char cVar20;
  byte bVar21;
  uint uVar22;
  undefined4 uVar23;
  Value VVar24;
  undefined4 uVar25;
  Address AVar26;
  Relobj *pRVar27;
  int iVar28;
  char *pcVar29;
  int iVar30;
  uint uVar31;
  undefined **ppuVar32;
  undefined4 *puVar33;
  undefined4 *puVar34;
  byte *pbVar35;
  byte *pbVar36;
  byte *pbVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  uint64_t uVar41;
  size_t asStack_114 [5];
  uint local_100;
  undefined1 auStack_ec [8];
  undefined **local_e4;
  undefined **local_e0;
  uint local_dc;
  char local_d1;
  int local_c8;
  Symbol_value<32> *local_c4;
  Sized_relobj_file<32,_false> *local_c0;
  Sized_relobj_file<32,_false> *local_bc;
  uint local_b8;
  int local_b4;
  uint local_b0;
  Symbol_value<32> *local_ac;
  size_t local_a8;
  Value *local_a4;
  Symbol_value<32> *local_a0;
  Symbol_value<32> *local_9c;
  int local_98;
  undefined **local_94;
  Symbol_table *local_90;
  bool is_ordinary;
  bool is_global;
  Elf_Addr value;
  uint key_symndx;
  Rel<32,_false> rel;
  Relocate relocate;
  Symbol_value<32> symval;
  Symbol_value<32> symval2;
  Symbol_value<32> symval_1;
  bool found;
  undefined1 local_2c [28];
  
  bVar40 = 0;
  local_94 = &_GLOBAL_OFFSET_TABLE_;
  local_d1 = needs_special_offset_handling;
  if (sh_type != 9) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");
  }
  local_c0 = relinfo->object;
  pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;
  p_Var3 = pp_Var2[0x23];
  if (p_Var3 == gold::Relobj::local_symbol_count) {
                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */
    local_dc = (*pp_Var2[0x2f])(local_c0);
  }
  else {
                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */
    local_dc = (*p_Var3)(local_c0);
  }
  puVar34 = (undefined4 *)auStack_ec;
  local_b4 = 0;
  local_a8 = 0;
  local_e0 = local_94 + 0xbc;
  local_e4 = local_94 + 0xbc;
  if (reloc_count != 0) {
    do {
      local_b8 = *(uint *)prelocs;
      if (local_d1 == '\0') {
LAB_0004e1d8:
        symval.output_symtab_index_ = 0;
        symval.output_dynsym_index_ = 0xffffffff;
        uVar22 = *(uint *)(prelocs + 4);
        symval._8_4_ = 0x80000000;
        symval.u_.value = 0;
        local_a4 = (Value *)(uVar22 >> 8);
        if (local_a4 < local_dc) {
          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&
             (local_90 = (Symbol_table *)
                         (reloc_symbol_changes->vec_).
                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {
LAB_0004e238:
            uVar31 = local_90->output_count_;
            uVar22 = uVar31 - 1;
            if (0xfffffffd < uVar22) goto LAB_0004e24d;
LAB_0004f6b0:
            if (uVar22 == 0xfffffffd) {
              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;
              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;
              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */
              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;
              gold::do_gold_unreachable
                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                         *(char **)((int)puVar34 + -8));
            }
            symval.output_symtab_index_ = uVar31;
            goto LAB_0004e254;
          }
          pSVar11 = (local_c0->local_values_).
                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                    ._M_impl._M_start;
          local_90 = (Symbol_table *)
                     (local_c0->local_values_).
                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                     ._M_impl._M_finish;
          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */
            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          local_9c = pSVar11 + (int)local_a4;
          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;
          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {
            local_90 = (Symbol_table *)0x0;
            local_ac = &symval;
            goto LAB_0004e2a0;
          }
          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                     ._M_impl._M_start;
          local_90 = (Symbol_table *)
                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                     ._M_impl._M_finish;
          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {
            *(uint *)((int)puVar34 + -4) = local_b0;
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */
            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          local_90 = (Symbol_table *)ppOVar13[local_b0];
          if (local_90 != (Symbol_table *)0x0) {
            local_90 = (Symbol_table *)0x0;
            local_ac = &symval;
            goto LAB_0004e2a0;
          }
          *(uint *)((int)puVar34 + -8) = local_b0;
          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;
          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;
                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */
          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;
          bVar18 = gold::Symbol_table::is_section_folded
                             (*(Symbol_table **)((int)puVar34 + -0x10),
                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));
          if (bVar18) {
            local_ac = &symval;
            uVar22 = *(uint *)(prelocs + 4);
            goto LAB_0004e2a0;
          }
LAB_0004f331:
          local_ac = &symval;
          local_a0 = &symval_1;
          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object
          ;
          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;
          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;
          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;
          local_c4 = &symval2;
          symval2.output_symtab_index_ = 0;
          symval2.output_dynsym_index_ = 0xffffffff;
          symval2._8_4_ = 0x80000000;
          symval2.u_.value = 0;
                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */
          p_Var3 = pp_Var2[0x10];
          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;
          (*p_Var3)();
          bVar18 = false;
          bVar39 = local_b4 == 0;
          if (bVar39) {
            iVar28 = 6;
            pbVar36 = (byte *)symval_1.output_symtab_index_;
            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);
            do {
              if (iVar28 == 0) break;
              iVar28 = iVar28 + -1;
              bVar18 = *pbVar36 < *pbVar35;
              bVar39 = *pbVar36 == *pbVar35;
              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
            } while (bVar39);
            bVar38 = false;
            bVar18 = (!bVar18 && !bVar39) == bVar18;
            if (!bVar18) {
              iVar28 = 7;
              pbVar36 = (byte *)symval_1.output_symtab_index_;
              ppuVar32 = local_94 + -0x3ceaf;
              do {
                if (iVar28 == 0) break;
                iVar28 = iVar28 + -1;
                bVar38 = *pbVar36 < *(byte *)ppuVar32;
                bVar18 = *pbVar36 == *(byte *)ppuVar32;
                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
              } while (bVar18);
              bVar39 = false;
              bVar18 = (!bVar38 && !bVar18) == bVar38;
              if (!bVar18) {
                iVar28 = 0x11;
                pbVar36 = (byte *)symval_1.output_symtab_index_;
                ppuVar32 = local_94 + -0x3cead;
                do {
                  if (iVar28 == 0) break;
                  iVar28 = iVar28 + -1;
                  bVar39 = *pbVar36 < *(byte *)ppuVar32;
                  bVar18 = *pbVar36 == *(byte *)ppuVar32;
                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
                } while (bVar18);
                bVar38 = false;
                bVar18 = (!bVar39 && !bVar18) == bVar39;
                if (!bVar18) {
                  iVar28 = 5;
                  pbVar36 = (byte *)symval_1.output_symtab_index_;
                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);
                  do {
                    if (iVar28 == 0) break;
                    iVar28 = iVar28 + -1;
                    bVar38 = *pbVar36 < *pbVar35;
                    bVar18 = *pbVar36 == *pbVar35;
                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                  } while (bVar18);
                  bVar39 = false;
                  bVar18 = (!bVar38 && !bVar18) == bVar38;
                  if (!bVar18) {
                    iVar28 = 5;
                    pbVar36 = (byte *)symval_1.output_symtab_index_;
                    ppuVar32 = local_94 + -0x3cea7;
                    do {
                      if (iVar28 == 0) break;
                      iVar28 = iVar28 + -1;
                      bVar39 = *pbVar36 < *(byte *)ppuVar32;
                      bVar18 = *pbVar36 == *(byte *)ppuVar32;
                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
                    } while (bVar18);
                    bVar38 = false;
                    bVar18 = (!bVar39 && !bVar18) == bVar39;
                    if (!bVar18) {
                      iVar28 = 4;
                      pbVar36 = (byte *)symval_1.output_symtab_index_;
                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);
                      do {
                        if (iVar28 == 0) break;
                        iVar28 = iVar28 + -1;
                        bVar38 = *pbVar36 < *pbVar35;
                        bVar18 = *pbVar36 == *pbVar35;
                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                      } while (bVar18);
                      bVar39 = false;
                      bVar18 = (!bVar38 && !bVar18) == bVar38;
                      if (!bVar18) {
                        iVar28 = 10;
                        pbVar36 = (byte *)symval_1.output_symtab_index_;
                        pbVar35 = (byte *)((int)local_94 + -0xf1212);
                        do {
                          if (iVar28 == 0) break;
                          iVar28 = iVar28 + -1;
                          bVar39 = *pbVar36 < *pbVar35;
                          bVar18 = *pbVar36 == *pbVar35;
                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        } while (bVar18);
                        bVar38 = false;
                        bVar18 = (!bVar39 && !bVar18) == bVar39;
                        if (!bVar18) {
                          iVar28 = 0x12;
                          pbVar36 = (byte *)symval_1.output_symtab_index_;
                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);
                          do {
                            if (iVar28 == 0) break;
                            iVar28 = iVar28 + -1;
                            bVar38 = *pbVar36 < *pbVar35;
                            bVar18 = *pbVar36 == *pbVar35;
                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                          } while (bVar18);
                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;
                        }
                        goto LAB_0004f5da;
                      }
                    }
                  }
                }
              }
            }
LAB_0004f3ac:
            *(bool **)((int)puVar34 + -8) = &found;
            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;
            *(uint *)((int)puVar34 + -0x10) = local_b0;
            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;
                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */
            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;
            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section
                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),
                                *(bool **)((int)puVar34 + -8));
            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;
            if (found != false) {
              symval2.u_.merged_symbol_value =
                   (Merged_symbol_value<32> *)
                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);
            }
            local_b4 = 1;
          }
          else {
            if (local_b4 == 1) goto LAB_0004f3ac;
            if (local_b4 == 3) {
LAB_0004f50a:
              pSVar10 = relinfo->object;
              if (local_90 == (Symbol_table *)0x0) {
                *(Value **)((int)puVar34 + -0x10) = local_a4;
                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;
                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name
                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                     *(uint *)((int)puVar34 + -0x10));
                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;
                uVar23 = gettext();
                *(Value **)((int)puVar34 + -0xc) = local_a4;
                *(char **)((int)puVar34 + -0x10) = pcVar29;
                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;
                *(uint *)((int)puVar34 + -0x1c) = local_b8;
                *(size_t *)((int)puVar34 + -0x20) = local_a8;
                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;
                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;
                gold::gold_error_at_location<32,_false>
                          (*(gold **)((int)puVar34 + -0x24),
                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),
                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),
                           *(char **)((int)puVar34 + -0x10));
              }
              else {
                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;
                *(bool **)((int)puVar34 + -0x14) = &found;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;
                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));
                puVar17 = _found;
                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;
                uVar23 = gettext();
                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;
                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;
                *(uint *)((int)puVar34 + -0x1c) = local_b8;
                *(size_t *)((int)puVar34 + -0x20) = local_a8;
                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;
                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */
                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;
                gold::gold_error_at_location<32,_false>
                          (*(gold **)((int)puVar34 + -0x24),
                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),
                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),
                           *(char **)((int)puVar34 + -0x10));
                if (_found != local_2c) {
                  *(undefined1 **)((int)puVar34 + -0x14) = _found;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;
                  operator_delete(*(void **)((int)puVar34 + -0x14));
                }
              }
              *(bool **)((int)puVar34 + -8) = &is_ordinary;
              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;
              *(Value **)((int)puVar34 + -0x10) = local_a4;
              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */
              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;
              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value
                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)
                                  ,*(bool **)((int)puVar34 + -8));
              if (uVar22 != 0) {
                *(uint **)((int)puVar34 + -0xc) = &key_symndx;
                *(uint *)((int)puVar34 + -0x10) = uVar22;
                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;
                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object
                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)
                                    );
                if (key_symndx != 0) {
                  *(uint *)((int)puVar34 + -0x10) = key_symndx;
                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;
                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name
                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                       *(uint *)((int)puVar34 + -0x10));
                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;
                  uVar23 = gettext();
                  *(char **)((int)puVar34 + -0x10) = pcVar29;
                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;
                  gold::gold_info(*(char **)((int)puVar34 + -0x14));
                }
                if (pRVar27 != (Relobj *)0x0) {
                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;
                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;
                  uVar23 = gettext();
                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;
                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;
                  gold::gold_info(*(char **)((int)puVar34 + -0x14));
                }
              }
              local_b4 = 3;
            }
            else {
LAB_0004f5da:
              local_b4 = 2;
            }
            symval2.u_.value = 0;
          }
          puVar33 = (undefined4 *)((int)puVar34 + -4);
          if (symval2.output_symtab_index_ != 0) {
            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;
            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;
            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */
            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),
                       *(char **)((int)puVar34 + -0xc));
          }
          symval2.output_symtab_index_ = 0xffffffff;
          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {
            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;
            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;
            operator_delete(*(void **)((int)puVar34 + -0x14));
          }
          local_c4 = &symval2;
          uVar22 = *(uint *)(prelocs + 4);
          local_9c = &symval2;
        }
        else {
          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&
             (local_90 = (Symbol_table *)
                         (reloc_symbol_changes->vec_).
                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;
          if (local_a4 < local_c0->local_symbol_count_) {
LAB_00050110:
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */
            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          ppSVar12 = (local_c0->symbols_).
                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                     _M_start;
          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;
          local_90 = (Symbol_table *)
                     (local_c0->symbols_).
                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                     _M_finish;
          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          local_90 = (Symbol_table *)ppSVar12[uVar22];
          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;
          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;
          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;
          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;
                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */
          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;
          local_90 = (Symbol_table *)
                     gold::Symbol_table::resolve_forwards
                               (*(Symbol_table **)((int)puVar34 + -0x10),
                                *(Symbol **)((int)puVar34 + -0xc));
          uVar31 = local_90->output_count_;
          uVar22 = uVar31 - 1;
          if (uVar22 < 0xfffffffe) {
            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {
              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;
              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;
              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */
              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;
              gold::do_gold_unreachable
                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                         *(char **)((int)puVar34 + -8));
            }
            goto LAB_0004f6b0;
          }
          if (symval.output_symtab_index_ != 0) {
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
LAB_0004e24d:
          symval.output_symtab_index_ = 0xffffffff;
LAB_0004e254:
          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;
          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;
          if (bVar21 == 6) {
            symval._8_4_ = symval._8_4_ | 0x20000000;
          }
          else if (bVar21 == 10) {
            symval._8_4_ = symval._8_4_ | 0x40000000;
          }
          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
          if ((char)bVar21 < '\0') {
            sVar15 = (local_90->table_)._M_h._M_bucket_count;
            if ((sVar15 & 0x70000) == 0) {
              if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&
                 ((bVar21 & 0x20) != 0)) {
LAB_0004f318:
                local_b0 = 0;
                local_9c = &symval;
                goto LAB_0004f331;
              }
              local_ac = &symval;
              uVar22 = *(uint *)(prelocs + 4);
              local_9c = &symval;
            }
            else {
              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;
              local_ac = &symval;
              uVar22 = *(uint *)(prelocs + 4);
              local_9c = &symval;
            }
          }
          else {
            local_ac = &symval;
            local_9c = &symval;
            uVar22 = *(uint *)(prelocs + 4);
          }
LAB_0004e2a0:
          symval2.output_symtab_index_ = 0;
          symval2.output_dynsym_index_ = 0xffffffff;
          symval2._8_4_ = 0x80000000;
          symval2.u_.value = 0;
          local_c4 = &symval2;
          puVar33 = puVar34;
        }
        ppuVar32 = local_94;
        local_b0 = uVar22 & 0xff;
        local_c8 = address + local_b8;
        if (((int)local_b8 < 0) || (view_size <= local_b8)) {
          local_a4 = (Value *)0x0;
          rel.p_ = (Rel_data<32> *)prelocs;
LAB_0004f1c0:
          rel.p_ = (Rel_data<32> *)prelocs;
          puVar33[-4] = (int)local_94 + -0xf3a7f;
          puVar33[-5] = 0x4f1d7;
          uVar23 = gettext();
          puVar33[-3] = local_b8;
          puVar33[-4] = uVar23;
          puVar33[-5] = (int)local_b8 >> 0x1f;
          puVar33[-6] = local_b8;
          puVar33[-7] = local_a8;
          puVar33[-8] = relinfo;
          puVar33[-9] = 0x4f1f4;
          gold::gold_error_at_location<32,_false>
                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],
                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);
        }
        else {
          local_a4 = (Value *)(view + local_b8);
          rel.p_ = (Rel_data<32> *)prelocs;
          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;
          symval_1.output_symtab_index_ = 0;
          symval_1.output_dynsym_index_ = 0xffffffff;
          local_bc = relinfo->object;
          symval_1._8_4_ = 0x80000000;
          symval_1.u_.value = 0;
          if (local_90 == (Symbol_table *)0x0) {
            if ((local_9c->field_0xb & 0x40) != 0) {
              uVar22 = *(uint *)(prelocs + 4);
              local_a0 = &symval_1;
              puVar33[-3] = uVar22 >> 8;
              puVar33[-4] = local_bc;
                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */
              puVar33[-5] = 0x4f227;
              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset
                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);
              if (bVar18) {
                pOVar9 = this->plt_;
                if (pOVar9 == (Output_data_plt_i386 *)0x0) {
                  local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */
                  puVar33[-1] = 0x50363;
                  plt_section((Target_i386 *)*puVar33);
                }
                if ((pOVar9->field_0x1c & 1) == 0) {
                  puVar33[-1] = ppuVar32;
                  puVar33[-2] = local_94 + -0x3c624;
                  puVar33[-3] = 0xc5;
                  puVar33[-4] = (int)local_94 + -0xf3ca3;
                  local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                  puVar33[-5] = &LAB_0005038b;
                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                }
                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;
                local_98 = *(int *)&pOVar9->field_0x8;
                uVar31 = pOVar9->count_;
                iVar28 = pOVar9->plt_eh_frame_cie_size;
                puVar33[-4] = pOVar9;
                local_a0 = &symval_1;
                pcVar8 = *(code **)(iVar28 + 100);
                puVar33[-5] = 0x4f274;
                iVar28 = (*pcVar8)();
                uVar31 = (uVar31 + 1) * iVar28;
                bVar18 = CARRY4(uVar31,(uint)local_9c);
                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);
                local_98 = local_98 + (uint)bVar18;
                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                          _vptr_Object;
                puVar33[-3] = uVar22 >> 8;
                puVar33[-4] = local_bc;
                local_a0 = &symval_1;
                p_Var3 = pp_Var2[0x2a];
                puVar33[-5] = 0x4f2ae;
                iVar28 = (*p_Var3)();
                symval_1.u_.merged_symbol_value =
                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);
                local_9c = &symval_1;
              }
            }
            local_a0 = &symval_1;
            if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();
              return;
            }
LAB_0004e736:
            local_a0 = &symval_1;
            puVar33[-4] = local_94 + -0x3ceb6;
            puVar33[-5] = 0x4e847;
            uVar23 = gettext();
            puVar33[-3] = local_b0;
            puVar33[-4] = uVar23;
            EVar5 = (rel.p_)->r_offset;
            puVar33[-5] = 0;
            puVar33[-6] = EVar5;
            puVar33[-7] = local_a8;
            puVar33[-8] = relinfo;
            puVar33[-9] = 0x4e867;
            gold::gold_error_at_location<32,_false>
                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],
                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);
          }
          else {
            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {
              uVar31 = 0;
              uVar22 = local_b0 - 1;
              if (uVar22 < 0x2b) goto LAB_0004f078;
LAB_0004e381:
              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {
                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {
                  puVar33[-3] = uVar31;
                  puVar33[-4] = local_90;
                  local_a0 = &symval_1;
                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */
                  puVar33[-5] = 0x4e3c4;
                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);
                  if (bVar18) goto LAB_0004e466;
                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
                  bVar19 = bVar21 & 7;
                  if (((bVar21 & 7) != 0) ||
                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment
                             ->output_lists_[3].
                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                             ._M_impl._M_end_of_storage & 1) == 0)) {
                    ppuVar32 = local_94 + 0xbc;
                    if (*(int *)(*ppuVar32 + 8) == 0) {
                      puVar33[-2] = local_94 + -0x3c69e;
                      puVar33[-3] = 0x5c;
                      puVar33[-4] = (int)local_94 + -0xf8d93;
                      local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */
                      puVar33[-5] = 0x501dc;
                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])
                      ;
                    }
                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {
LAB_0004e454:
                      if ((uVar31 & 8) != 0) {
                        sVar15 = (local_90->table_)._M_h._M_bucket_count;
                        if ((sVar15 & 0x70000) == 0) {
                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx
                               == 0) &&
                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {
LAB_0004ebf4:
                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&
                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {
                              if (*(int *)(*ppuVar32 + 8) == 0) {
                                puVar33[-1] = ppuVar32;
                                puVar33[-2] = local_94 + -0x3c69e;
                                puVar33[-3] = 0x5c;
                                puVar33[-4] = (int)local_94 + -0xf8d93;
                                local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                                puVar33[-5] = &LAB_0005044d;
                                gold::do_gold_unreachable
                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                              }
                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')
                              goto LAB_0004e466;
                            }
                            goto LAB_0004eb80;
                          }
                        }
                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;
                      }
                      goto LAB_0004e466;
                    }
                    if (bVar19 == 0) {
                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)
                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {
LAB_0004e432:
                        puVar33[-4] = local_90;
                        local_a0 = &symval_1;
                        puVar33[-5] = 0x4e449;
                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);
                        if (!bVar18) goto LAB_0004e454;
                      }
                    }
                    else if (bVar19 != 4) goto LAB_0004e432;
                  }
                }
LAB_0004eb80:
                if (this->plt_ == (Output_data_plt_i386 *)0x0) {
                  local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */
                  puVar33[-1] = 0x50198;
                  plt_section((Target_i386 *)*puVar33);
                }
                local_a0 = &symval_1;
                puVar33[-1] = 0x4eba2;
                uVar41 = Output_data_plt_i386::address_for_global
                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);
                symval_1.u_.value = (Value)uVar41;
                local_9c = &symval_1;
              }
LAB_0004e466:
              local_a0 = &symval_1;
              if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();
                return;
              }
              goto LAB_0004e736;
            }
            puVar33[-3] = 1;
            puVar33[-4] = local_90;
            local_a0 = &symval_1;
            puVar33[-5] = 0x4ea09;
            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);
            pSVar6 = local_90;
            if (!bVar18) {
LAB_0004f070:
              uVar22 = 0;
LAB_0004f078:
              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));
              goto LAB_0004e381;
            }
            puVar33[-3] = 0;
            puVar33[-4] = local_90;
            local_a0 = &symval_1;
            puVar33[-5] = 0x4ea2e;
            bVar18 = gold::Symbol::can_use_relative_reloc
                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));
            if (!bVar18) goto LAB_0004f070;
            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;
            if ((sVar15 & 0x70000) != 0) {
              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;
              goto LAB_0004f070;
            }
            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->
                        output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage & 1) != 0) ||
               ((((anon_union_4_3_b582a2bd_for_u2_ *)
                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&
                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;
LAB_0004ea6a:
            puVar33[-4] = local_90;
            local_a0 = &symval_1;
            puVar33[-5] = 0x4ea81;
            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);
            if (bVar18) goto LAB_0004f070;
            local_a0 = &symval_1;
            puVar33[-4] = output_section;
            puVar33[-5] = 0x4eab3;
            bVar18 = Relocate::should_apply_static_reloc
                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],
                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);
            pVVar16 = local_a4;
            if (bVar18) {
              puVar33[-2] = *local_a4;
              puVar33[-3] = local_bc;
              puVar33[-4] = local_9c;
              puVar33[-5] = 0x4eada;
              VVar24 = gold::Symbol_value<32>::value<false>
                                 ((Symbol_value<32> *)puVar33[-4],
                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);
              *pVVar16 = VVar24;
            }
          }
          puVar33[-4] = local_a0;
          puVar33[-5] = 0x4e4c6;
          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);
          if (local_90 != (Symbol_table *)0x0) {
            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
            uVar31 = (uint)bVar21;
            uVar22 = uVar31 & 7;
            if ((bVar21 & 7) == 0) {
              if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&
                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {
LAB_0004ecc9:
                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                if ((bVar21 >> 4 == 2) ||
                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {
LAB_0004ef40:
                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                  bVar21 = bVar21 & 3;
                }
                else {
                  iVar28 = *(int *)(local_94[0xbc] + 8);
                  if (iVar28 == 0) {
                    puVar33[-1] = uVar31;
                    puVar33[-2] = local_94 + -0x3c69e;
                    puVar33[-3] = 0x5c;
                    puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */
                    puVar33[-5] = 0x5029b;
                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                  }
                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;
                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                  ppuVar32 = local_94 + 0xbc;
                  if ((char)bVar19 < '\0') {
                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;
                    ppuVar32 = local_94 + -0xba878;
LAB_0004ed40:
                    ppuVar4 = (undefined **)
                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->
                              _vptr_Object[5];
                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;
                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;
                    puVar33[-5] = 0x4ed5c;
                    iVar28 = (*(code *)ppuVar4)();
                    ppuVar32 = local_e4;
                    if (iVar28 != 0) goto LAB_0004ed70;
LAB_0004eea0:
                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                    bVar21 = bVar21 & 3;
                  }
                  else {
LAB_0004ed70:
                    piVar7 = *(int **)(*ppuVar32 + 0xc);
                    if (piVar7 == (int *)0x0) {
                      puVar33[-2] = local_94 + -0x3c759;
                      puVar33[-3] = 0x69;
                      puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */
                      puVar33[-5] = 0x501fa;
                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])
                      ;
                    }
                    iVar28 = *piVar7;
                    puVar33[-3] = local_90;
                    puVar33[-4] = piVar7;
                    pcVar8 = *(code **)(iVar28 + 0x1c);
                    puVar33[-5] = 0x4ed8c;
                    cVar20 = (*pcVar8)();
                    pSVar6 = local_90;
                    if (cVar20 != '\0') goto LAB_0004eea0;
                    iVar28 = *(int *)(*ppuVar32 + 8);
                    if (iVar28 == 0) {
                      puVar33[-2] = local_94 + -0x3c69e;
                      puVar33[-3] = 0x5c;
                      puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                      puVar33[-5] = &LAB_00050218;
                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])
                      ;
                    }
                    pbVar36 = *(byte **)(iVar28 + 0x42e4);
                    bVar18 = false;
                    bVar39 = pbVar36 == (byte *)0x0;
                    if (bVar39) {
                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                      bVar21 = bVar21 & 3;
LAB_0004ee51:
                      if ((bVar21 == 2) ||
                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||
                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {
LAB_0004ee67:
                        puVar33[-4] = (int)local_b8 >> 0x1f;
                        puVar33[-5] = local_b8;
                        puVar33[-6] = local_a8;
                        puVar33[-7] = relinfo;
                        puVar33[-8] = local_90;
                        puVar33[-9] = 0x4ee8e;
                        gold::gold_undefined_symbol_at_location<32,_false>
                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],
                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],
                                   *(off_t *)(puVar33 + -4));
                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);
                        goto LAB_0004e538;
                      }
                    }
                    else {
                      iVar30 = 0xb;
                      pbVar35 = pbVar36;
                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);
                      do {
                        if (iVar30 == 0) break;
                        iVar30 = iVar30 + -1;
                        bVar18 = *pbVar35 < *pbVar37;
                        bVar39 = *pbVar35 == *pbVar37;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;
                      } while (bVar39);
                      bVar38 = false;
                      bVar18 = (!bVar18 && !bVar39) == bVar18;
                      if (bVar18) goto LAB_0004eea0;
                      iVar30 = 0xb;
                      pbVar35 = pbVar36;
                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);
                      do {
                        if (iVar30 == 0) break;
                        iVar30 = iVar30 + -1;
                        bVar38 = *pbVar35 < *pbVar37;
                        bVar18 = *pbVar35 == *pbVar37;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;
                      } while (bVar18);
                      bVar39 = false;
                      bVar18 = (!bVar38 && !bVar18) == bVar38;
                      if (bVar18) goto LAB_0004ee67;
                      iVar30 = 0x17;
                      pbVar35 = pbVar36;
                      ppuVar32 = local_94 + -0x3e3e4;
                      do {
                        if (iVar30 == 0) break;
                        iVar30 = iVar30 + -1;
                        bVar39 = *pbVar35 < *(byte *)ppuVar32;
                        bVar18 = *pbVar35 == *(byte *)ppuVar32;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
                      } while (bVar18);
                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                      bVar21 = bVar21 & 3;
                      bVar18 = (!bVar39 && !bVar18) == bVar39;
                      if ((!bVar18) ||
                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,
                         !bVar18)) {
                        bVar39 = false;
                        iVar30 = 0x16;
                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);
                        do {
                          if (iVar30 == 0) break;
                          iVar30 = iVar30 + -1;
                          bVar39 = *pbVar36 < *pbVar35;
                          bVar18 = *pbVar36 == *pbVar35;
                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        } while (bVar18);
                        if (((!bVar39 && !bVar18) != bVar39) ||
                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)
                            < '\0')) goto LAB_0004ee51;
                      }
                    }
                  }
                }
                if (bVar21 == 0) goto LAB_0004efaf;
                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                bVar19 = bVar19 & 7;
                uVar22 = (uint)bVar19;
                if (bVar19 != 0) goto LAB_0004eee0;
              }
              else {
                ppuVar32 = local_94 + -0xba878;
                ppuVar4 = (undefined **)
                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->
                          _vptr_Object[5];
                if (ppuVar4 != ppuVar32) {
                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;
                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */
                  puVar33[-5] = 0x4f896;
                  iVar28 = (*(code *)ppuVar4)();
                  if (iVar28 != 0) {
                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
                    uVar31 = (uint)bVar21;
                    uVar22 = uVar31 & 7;
                    if ((bVar21 & 7) == 0) {
                      if (((anon_union_4_3_b582a2bd_for_u2_ *)
                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)
                      {
                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;
                      }
                      else {
                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                      }
                      if ((char)bVar21 < '\0') goto LAB_0004ed40;
LAB_0004f8c5:
                      ppuVar32 = local_94 + 0xbc;
                      goto LAB_0004ed70;
                    }
                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;
                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                    if (-1 < (char)bVar19) goto LAB_0004f8c5;
LAB_0004f8f7:
                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);
                    bVar21 = bVar1 & 3;
                    if ((bVar1 & 3) != 0) {
                      uVar22 = uVar31 & 7;
                      goto LAB_0004eee0;
                    }
                    goto LAB_0004e538;
                  }
                  goto LAB_0004ef40;
                }
LAB_0004e51b:
                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                bVar21 = bVar19 & 3;
                if ((bVar19 & 3) == 0) goto LAB_0004e534;
                uVar22 = uVar31 & 7;
              }
              if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&
                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {
                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                if ((bVar19 >> 4 == 2) ||
                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))
                goto LAB_0004ec9c;
LAB_0004ef17:
                if (*(int *)(*local_e0 + 8) == 0) {
                  puVar33[-1] = local_e0;
                  puVar33[-2] = local_94 + -0x3c69e;
                  puVar33[-3] = 0x5c;
                  puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */
                  puVar33[-5] = &UNK_000500bd;
                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                }
                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {
                  if ((char)uVar22 != '\0') goto LAB_0004efaf;
                  goto LAB_0004ec9c;
                }
LAB_0004ef58:
                if (bVar21 == 2) {
                  puVar33[-4] = (int)local_94 + -0xf3a5d;
                  puVar33[-5] = 0x4fcf5;
                  uVar23 = gettext();
                }
                else if (bVar21 < 3) {
                  if (bVar21 != 1) {
                    puVar33[-1] = uVar22;
                    puVar33[-2] = local_94 + -0x3c75e;
                    puVar33[-3] = 0xa4;
                    puVar33[-4] = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */
                    puVar33[-5] = &LAB_0005025b;
                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                  }
                  puVar33[-4] = (int)local_94 + -0xf3a66;
                  puVar33[-5] = 0x4efdd;
                  uVar23 = gettext();
                }
                else {
                  puVar33[-4] = (int)local_94 + -0xf3a56;
                  puVar33[-5] = 0x4ef77;
                  uVar23 = gettext();
                }
                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;
                puVar33[-4] = local_94 + -0x3cd73;
                puVar33[-5] = 0x4ef9b;
                uVar25 = gettext();
                puVar33[-2] = pp_Var2;
                puVar33[-3] = uVar23;
                puVar33[-4] = uVar25;
                puVar33[-5] = 0x4efac;
                gold::gold_error((char *)puVar33[-4]);
                goto LAB_0004efaf;
              }
LAB_0004ec9c:
              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->
                         output_lists_[3].
                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;
              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
            }
            else {
              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;
              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
              bVar21 = bVar19 & 3;
              if ((bVar19 & 3) == 0) {
LAB_0004e534:
                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                goto LAB_0004e538;
              }
LAB_0004eee0:
              if ((char)uVar22 == '\x04') {
                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                if (bVar19 >> 4 != 2) {
                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)
                  goto LAB_0004ef17;
                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                  goto LAB_0004e538;
                }
              }
LAB_0004efaf:
              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
            }
LAB_0004e538:
            if ((bVar19 & 4) != 0) {
              puVar33[-3] = (int)local_b8 >> 0x1f;
              puVar33[-4] = local_b8;
              puVar33[-5] = local_a8;
              pSVar6 = relinfo->symtab;
              puVar33[-6] = relinfo;
              puVar33[-7] = local_90;
              local_90 = pSVar6;
              puVar33[-8] = &pSVar6->warnings_;
                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */
              puVar33[-9] = 0x4ec77;
              gold::Warnings::issue_warning<32,_false>
                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],
                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],
                         *(off_t *)(puVar33 + -4));
            }
          }
        }
        puVar33[-4] = local_c4;
        puVar33[-5] = 0x4e54f;
        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);
        puVar33[-4] = local_ac;
        puVar33[-5] = 0x4e55b;
        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);
        puVar34 = puVar33;
      }
      else {
        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;
        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;
        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;
        *(Output_section **)((int)puVar34 + -0x10) = output_section;
                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */
        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;
        local_b8 = gold::Output_section::output_offset
                             (*(Output_section **)((int)puVar34 + -0x10),
                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),
                              *(section_offset_type *)((int)puVar34 + -4));
        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;
      }
      local_a8 = local_a8 + 1;
      prelocs = prelocs + 8;
    } while (reloc_count != local_a8);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,
                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11
                 )

{
  byte bVar1;
  code *pcVar2;
  undefined **ppuVar3;
  undefined4 *puVar4;
  int *piVar5;
  undefined1 *puVar6;
  char cVar7;
  byte bVar8;
  byte bVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  byte *pbVar14;
  int iVar15;
  int iVar16;
  byte *pbVar17;
  uint uVar18;
  undefined **ppuVar19;
  undefined1 *puVar20;
  undefined1 *puVar21;
  byte *pbVar22;
  bool bVar23;
  bool bVar24;
  bool bVar25;
  byte bVar26;
  undefined1 auStack_ec [8];
  undefined **local_e4;
  undefined **local_e0;
  undefined4 *local_dc;
  char local_d1;
  int local_c8;
  byte **local_c4;
  int *local_c0;
  int *local_bc;
  uint local_b8;
  int local_b4;
  uint local_b0;
  byte **local_ac;
  int local_a8;
  undefined4 *local_a4;
  byte **local_a0;
  byte **local_9c;
  int local_98;
  undefined **local_94;
  undefined4 *local_90;
  undefined1 local_82 [2];
  undefined1 local_80 [4];
  int local_7c;
  uint *local_78;
  char local_74;
  undefined4 local_70;
  byte *local_6c;
  undefined4 local_68;
  uint local_64;
  undefined4 local_60;
  byte *local_5c;
  undefined4 local_58;
  undefined4 local_54;
  byte *local_50;
  byte *local_4c;
  undefined4 local_48;
  byte local_44 [4];
  int local_40;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  bVar26 = 0;
  local_94 = &__DT_PLTGOT;
  local_d1 = param_7;
  if (param_3 != 9) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");
  }
  local_74 = '\0';
  local_70 = 0;
  local_c0 = (int *)param_2[2];
  pcVar2 = *(code **)(*local_c0 + 0x8c);
  if (pcVar2 == FUN_00054e30) {
                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */
    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);
  }
  else {
                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */
    local_dc = (undefined4 *)(*pcVar2)(local_c0);
  }
  puVar21 = auStack_ec;
  local_b4 = 0;
  local_a8 = 0;
  local_e4 = local_94 + 0xbc;
  puVar6 = auStack_ec;
  local_e0 = local_e4;
  if (param_5 != 0) {
    do {
      puVar21 = puVar6;
      local_b8 = *param_4;
      if (local_d1 == '\0') {
LAB_0004e1d8:
        local_6c = (byte *)0x0;
        local_68 = 0xffffffff;
        uVar10 = param_4[1];
        local_64 = 0x80000000;
        local_60 = 0;
        local_a4 = (undefined4 *)(uVar10 >> 8);
        if (local_a4 < local_dc) {
          if ((param_11 != (int *)0x0) &&
             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))
          {
LAB_0004e238:
            pbVar14 = (byte *)local_90[4];
            pbVar17 = pbVar14 + -1;
            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;
LAB_0004e24d:
            local_6c = (byte *)0xffffffff;
            pbVar14 = local_6c;
            goto LAB_0004e254;
          }
          local_90 = (undefined4 *)local_c0[0x38];
          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;
            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */
            *(undefined4 *)(puVar21 + -0x14) = 0x50169;
            FUN_0008b620();
          }
          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);
          local_b0 = (uint)local_9c[2] & 0x7ffffff;
          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {
            local_90 = (undefined4 *)0x0;
            goto LAB_0004e2a0;
          }
          local_90 = (undefined4 *)local_c0[0xf];
          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {
            *(uint *)(puVar21 + -4) = local_b0;
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;
            *(undefined4 *)(puVar21 + -0xc) = 0x50b;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */
            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;
            FUN_0008b620();
          }
          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);
          if (local_90 != (undefined4 *)0x0) {
            local_90 = (undefined4 *)0x0;
            goto LAB_0004e2a0;
          }
          *(uint *)(puVar21 + -8) = local_b0;
          *(int **)(puVar21 + -0xc) = local_c0;
          *(undefined4 *)(puVar21 + -0x10) = *param_2;
                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */
          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;
          cVar7 = FUN_0014ebc0();
          if (cVar7 != '\0') {
            uVar10 = param_4[1];
            goto LAB_0004e2a0;
          }
LAB_0004f331:
          local_ac = &local_6c;
          local_a0 = &local_4c;
          iVar15 = *local_c0;
          *(undefined4 *)(puVar21 + -8) = param_2[6];
          *(int **)(puVar21 + -0xc) = local_c0;
          *(byte ***)(puVar21 + -0x10) = local_a0;
          local_c4 = &local_5c;
          local_5c = (byte *)0x0;
          local_58 = 0xffffffff;
          local_54 = 0x80000000;
          local_50 = (byte *)0x0;
                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */
          pcVar2 = *(code **)(iVar15 + 0x40);
          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;
          (*pcVar2)();
          puVar20 = puVar21 + -4;
          bVar23 = false;
          bVar25 = local_b4 == 0;
          if (bVar25) {
            iVar15 = 6;
            pbVar17 = local_4c;
            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);
            do {
              if (iVar15 == 0) break;
              iVar15 = iVar15 + -1;
              bVar23 = *pbVar17 < *pbVar14;
              bVar25 = *pbVar17 == *pbVar14;
              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
            } while (bVar25);
            bVar24 = false;
            bVar23 = (!bVar23 && !bVar25) == bVar23;
            if (!bVar23) {
              iVar15 = 7;
              pbVar17 = local_4c;
              ppuVar19 = local_94 + -0x3ceaf;
              do {
                if (iVar15 == 0) break;
                iVar15 = iVar15 + -1;
                bVar24 = *pbVar17 < *(byte *)ppuVar19;
                bVar23 = *pbVar17 == *(byte *)ppuVar19;
                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
              } while (bVar23);
              bVar25 = false;
              bVar23 = (!bVar24 && !bVar23) == bVar24;
              if (!bVar23) {
                iVar15 = 0x11;
                pbVar17 = local_4c;
                ppuVar19 = local_94 + -0x3cead;
                do {
                  if (iVar15 == 0) break;
                  iVar15 = iVar15 + -1;
                  bVar25 = *pbVar17 < *(byte *)ppuVar19;
                  bVar23 = *pbVar17 == *(byte *)ppuVar19;
                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
                } while (bVar23);
                bVar24 = false;
                bVar23 = (!bVar25 && !bVar23) == bVar25;
                if (!bVar23) {
                  iVar15 = 5;
                  pbVar17 = local_4c;
                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);
                  do {
                    if (iVar15 == 0) break;
                    iVar15 = iVar15 + -1;
                    bVar24 = *pbVar17 < *pbVar14;
                    bVar23 = *pbVar17 == *pbVar14;
                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                  } while (bVar23);
                  bVar25 = false;
                  bVar23 = (!bVar24 && !bVar23) == bVar24;
                  if (!bVar23) {
                    iVar15 = 5;
                    pbVar17 = local_4c;
                    ppuVar19 = local_94 + -0x3cea7;
                    do {
                      if (iVar15 == 0) break;
                      iVar15 = iVar15 + -1;
                      bVar25 = *pbVar17 < *(byte *)ppuVar19;
                      bVar23 = *pbVar17 == *(byte *)ppuVar19;
                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
                    } while (bVar23);
                    bVar24 = false;
                    bVar23 = (!bVar25 && !bVar23) == bVar25;
                    if (!bVar23) {
                      iVar15 = 4;
                      pbVar17 = local_4c;
                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);
                      do {
                        if (iVar15 == 0) break;
                        iVar15 = iVar15 + -1;
                        bVar24 = *pbVar17 < *pbVar14;
                        bVar23 = *pbVar17 == *pbVar14;
                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                      } while (bVar23);
                      bVar25 = false;
                      bVar23 = (!bVar24 && !bVar23) == bVar24;
                      if (!bVar23) {
                        iVar15 = 10;
                        pbVar17 = local_4c;
                        pbVar14 = (byte *)((int)local_94 + -0xf1212);
                        do {
                          if (iVar15 == 0) break;
                          iVar15 = iVar15 + -1;
                          bVar25 = *pbVar17 < *pbVar14;
                          bVar23 = *pbVar17 == *pbVar14;
                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                        } while (bVar23);
                        bVar24 = false;
                        bVar23 = (!bVar25 && !bVar23) == bVar25;
                        if (!bVar23) {
                          iVar15 = 0x12;
                          pbVar17 = local_4c;
                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);
                          do {
                            if (iVar15 == 0) break;
                            iVar15 = iVar15 + -1;
                            bVar24 = *pbVar17 < *pbVar14;
                            bVar23 = *pbVar17 == *pbVar14;
                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                          } while (bVar23);
                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;
                        }
                        goto LAB_0004f5da;
                      }
                    }
                  }
                }
              }
            }
LAB_0004f3ac:
            *(undefined1 ***)(puVar21 + -8) = local_34;
            *(byte ***)(puVar21 + -0xc) = local_a0;
            *(uint *)(puVar21 + -0x10) = local_b0;
            *(int **)(puVar21 + -0x14) = local_c0;
                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */
            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;
            iVar15 = FUN_000c2280();
            local_50 = (byte *)0x0;
            if ((char)local_34[0] != '\0') {
              local_50 = local_9c[3] + iVar15;
            }
            local_b4 = 1;
            puVar21 = puVar21 + -4;
          }
          else {
            if (local_b4 == 1) goto LAB_0004f3ac;
            if (local_b4 == 3) {
LAB_0004f50a:
              uVar11 = param_2[2];
              if (local_90 == (undefined4 *)0x0) {
                *(undefined4 **)(puVar21 + -0x10) = local_a4;
                *(undefined4 *)(puVar21 + -0x14) = uVar11;
                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */
                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;
                uVar13 = FUN_000c62d0();
                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;
                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;
                uVar12 = gettext();
                *(undefined4 **)(puVar21 + -0xc) = local_a4;
                *(undefined4 *)(puVar21 + -0x10) = uVar13;
                *(undefined4 *)(puVar21 + -0x14) = uVar12;
                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;
                *(uint *)(puVar21 + -0x1c) = local_b8;
                *(int *)(puVar21 + -0x20) = local_a8;
                *(undefined4 **)(puVar21 + -0x24) = param_2;
                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;
                FUN_00082e10();
                puVar20 = puVar21 + -4;
              }
              else {
                *(undefined4 **)(puVar21 + -0x10) = local_90;
                *(undefined1 ***)(puVar21 + -0x14) = local_34;
                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;
                FUN_0014f9f0();
                puVar6 = local_34[0];
                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;
                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;
                uVar13 = gettext();
                *(undefined1 **)(puVar21 + -0x14) = puVar6;
                *(undefined4 *)(puVar21 + -0x18) = uVar13;
                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;
                *(uint *)(puVar21 + -0x20) = local_b8;
                *(int *)(puVar21 + -0x24) = local_a8;
                *(undefined4 **)(puVar21 + -0x28) = param_2;
                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */
                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;
                FUN_00082e10();
                puVar20 = puVar21 + -8;
                if (local_34[0] != local_2c) {
                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];
                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;
                  FUN_001ac470();
                  puVar20 = puVar21 + -8;
                }
              }
              *(undefined1 **)(puVar20 + -4) = local_82;
              *(undefined1 **)(puVar20 + -8) = local_80;
              *(undefined4 **)(puVar20 + -0xc) = local_a4;
              *(undefined4 *)(puVar20 + -0x10) = uVar11;
                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */
              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;
              iVar15 = FUN_000c5610();
              if (iVar15 != 0) {
                *(int **)(puVar20 + -8) = &local_7c;
                *(int *)(puVar20 + -0xc) = iVar15;
                *(undefined4 *)(puVar20 + -0x10) = uVar11;
                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */
                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;
                iVar15 = FUN_000c24f0();
                if (local_7c != 0) {
                  *(int *)(puVar20 + -0xc) = local_7c;
                  *(undefined4 *)(puVar20 + -0x10) = uVar11;
                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */
                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;
                  uVar11 = FUN_000c62d0();
                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;
                  uVar13 = gettext();
                  *(undefined4 *)(puVar20 + -0xc) = uVar11;
                  *(undefined4 *)(puVar20 + -0x10) = uVar13;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;
                  FUN_00082930();
                }
                if (iVar15 != 0) {
                  uVar11 = *(undefined4 *)(iVar15 + 4);
                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;
                  uVar13 = gettext();
                  *(undefined4 *)(puVar20 + -0xc) = uVar11;
                  *(undefined4 *)(puVar20 + -0x10) = uVar13;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;
                  FUN_00082930();
                }
              }
              local_b4 = 3;
            }
            else {
LAB_0004f5da:
              local_b4 = 2;
            }
            local_50 = (byte *)0x0;
            puVar21 = puVar20;
          }
          if (local_5c != (byte *)0x0) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;
            *(undefined4 *)(puVar21 + -0xc) = 0x716;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */
            *(undefined4 *)(puVar21 + -0x14) = 0x50110;
            FUN_0008b620();
          }
          local_5c = (byte *)0xffffffff;
          if (local_4c != local_44) {
            *(byte **)(puVar21 + -0x10) = local_4c;
            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;
            FUN_001ac470();
          }
          local_9c = &local_5c;
          uVar10 = param_4[1];
        }
        else {
          if ((param_11 != (int *)0x0) &&
             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))
          goto LAB_0004e238;
          if (local_a4 < (undefined4 *)local_c0[0x2c]) {
LAB_00050110:
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;
            *(undefined4 *)(puVar21 + -0xc) = 0x17f;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */
            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;
            FUN_0008b620();
          }
          uVar10 = (int)local_a4 - local_c0[0x2c];
          local_90 = (undefined4 *)local_c0[0x30];
          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;
            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;
            FUN_0008b620();
          }
          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);
          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;
          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;
          *(undefined4 **)(puVar21 + -0xc) = local_90;
          *(undefined4 *)(puVar21 + -0x10) = *param_2;
                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */
          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;
          local_90 = (undefined4 *)FUN_0014ec30();
          pbVar14 = (byte *)local_90[4];
          pbVar17 = pbVar14 + -1;
          if ((byte *)0xfffffffd < pbVar17) {
            if (local_6c != (byte *)0x0) {
              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;
              *(undefined4 *)(puVar21 + -0xc) = 0x716;
              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;
              FUN_0008b620();
            }
            goto LAB_0004e24d;
          }
          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;
            *(undefined4 *)(puVar21 + -0xc) = 0x70c;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */
            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;
            FUN_0008b620();
          }
LAB_0004f6b0:
          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;
LAB_0004e254:
          local_6c = pbVar14;
          local_60 = local_90[0xc];
          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {
            local_64 = local_64 | 0x20000000;
          }
          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {
            local_64 = local_64 | 0x40000000;
          }
          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {
            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {
              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
LAB_0004f318:
                local_b0 = 0;
                local_9c = &local_6c;
                goto LAB_0004f331;
              }
              local_9c = &local_6c;
              uVar10 = param_4[1];
            }
            else {
              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;
              local_9c = &local_6c;
              uVar10 = param_4[1];
            }
          }
          else {
            local_9c = &local_6c;
            uVar10 = param_4[1];
          }
LAB_0004e2a0:
          local_ac = &local_6c;
          local_5c = (byte *)0x0;
          local_58 = 0xffffffff;
          local_54 = 0x80000000;
          local_50 = (byte *)0x0;
        }
        local_c4 = &local_5c;
        local_b0 = uVar10 & 0xff;
        local_c8 = param_9 + local_b8;
        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {
          local_a4 = (undefined4 *)0x0;
          local_78 = param_4;
          if (local_74 != '\0') goto LAB_0004f130;
LAB_0004f1c0:
          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;
          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;
          uVar11 = gettext();
          *(uint *)(puVar21 + -0xc) = local_b8;
          *(undefined4 *)(puVar21 + -0x10) = uVar11;
          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;
          *(uint *)(puVar21 + -0x18) = local_b8;
          *(int *)(puVar21 + -0x1c) = local_a8;
          *(undefined4 **)(puVar21 + -0x20) = param_2;
          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;
          FUN_00082e10();
        }
        else {
          local_a4 = (undefined4 *)(local_b8 + param_8);
          local_78 = param_4;
          if (local_74 == '\0') {
LAB_0004e30b:
            ppuVar19 = local_94;
            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;
            local_4c = (byte *)0x0;
            local_48 = 0xffffffff;
            local_bc = (int *)param_2[2];
            local_44[0] = 0;
            local_44[1] = 0;
            local_44[2] = 0;
            local_44[3] = 0x80;
            local_40 = 0;
            if (local_90 == (undefined4 *)0x0) {
              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {
                uVar10 = local_78[1];
                local_a0 = &local_4c;
                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;
                *(int **)(puVar21 + -0x10) = local_bc;
                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */
                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;
                cVar7 = FUN_000c21d0();
                if (cVar7 != '\0') {
                  piVar5 = *(int **)(param_1 + 0x18);
                  if (piVar5 == (int *)0x0) {
                    local_a0 = &local_4c;
                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */
                    *(undefined4 *)(puVar21 + -4) = 0x50363;
                    FUN_000494c0();
LAB_00050363:
                    *(undefined ***)(puVar21 + -4) = ppuVar19;
                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;
                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;
                    local_a0 = &local_4c;
                    /* WARNING: Subroutine does not return */
                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;
                    FUN_0008b620();
                  }
                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;
                  local_9c = (byte **)piVar5[1];
                  local_98 = piVar5[2];
                  iVar15 = piVar5[0x10];
                  iVar16 = *piVar5;
                  *(int **)(puVar21 + -0x10) = piVar5;
                  local_a0 = &local_4c;
                  pcVar2 = *(code **)(iVar16 + 100);
                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;
                  iVar16 = (*pcVar2)();
                  uVar18 = (iVar15 + 1) * iVar16;
                  bVar23 = CARRY4(uVar18,(uint)local_9c);
                  local_9c = (byte **)(uVar18 + (int)local_9c);
                  local_98 = local_98 + (uint)bVar23;
                  iVar15 = *local_bc;
                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;
                  *(int **)(puVar21 + -0x10) = local_bc;
                  local_a0 = &local_4c;
                  pcVar2 = *(code **)(iVar15 + 0xa8);
                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;
                  local_40 = (*pcVar2)();
                  local_40 = local_40 + (int)local_9c;
                  local_9c = &local_4c;
                }
              }
              local_a0 = &local_4c;
              if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();
                return;
              }
LAB_0004e736:
              local_a0 = &local_4c;
              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;
              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;
              uVar11 = gettext();
              *(uint *)(puVar21 + -0xc) = local_b0;
              *(undefined4 *)(puVar21 + -0x10) = uVar11;
              uVar10 = *local_78;
              *(undefined4 *)(puVar21 + -0x14) = 0;
              *(uint *)(puVar21 + -0x18) = uVar10;
              *(int *)(puVar21 + -0x1c) = local_a8;
              *(undefined4 **)(puVar21 + -0x20) = param_2;
              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;
              FUN_00082e10();
            }
            else {
              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {
                uVar18 = 0;
                uVar10 = local_b0 - 1;
                if (uVar10 < 0x2b) goto LAB_0004f078;
LAB_0004e381:
                if (local_90[6] != -1) {
                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {
                    local_a0 = &local_4c;
                    *(uint *)(puVar21 + -0xc) = uVar18;
                    *(undefined4 **)(puVar21 + -0x10) = local_90;
                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */
                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;
                    cVar7 = FUN_00055ca0();
                    if (cVar7 != '\0') goto LAB_0004e466;
                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;
                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||
                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {
                      ppuVar19 = local_94 + 0xbc;
                      if (*(int *)(*ppuVar19 + 8) == 0) {
                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                        local_a0 = &local_4c;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */
                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;
                        FUN_0008b620();
                      }
                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {
LAB_0004e454:
                        if ((uVar18 & 8) != 0) {
                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {
                            if ((local_90[3] == 0) &&
                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
LAB_0004ebf4:
                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&
                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {
                                if (*(int *)(*ppuVar19 + 8) == 0) {
                                  *(undefined ***)(puVar21 + -4) = ppuVar19;
                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                                  local_a0 = &local_4c;
                    /* WARNING: Subroutine does not return */
                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;
                                  FUN_0008b620();
                                }
                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')
                                goto LAB_0004e466;
                              }
                              goto LAB_0004eb80;
                            }
                          }
                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;
                        }
                        goto LAB_0004e466;
                      }
                      if (bVar8 == 0) {
                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {
LAB_0004e432:
                          *(undefined4 **)(puVar21 + -0x10) = local_90;
                          local_a0 = &local_4c;
                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;
                          cVar7 = FUN_00055b70();
                          if (cVar7 == '\0') goto LAB_0004e454;
                        }
                      }
                      else if (bVar8 != 4) goto LAB_0004e432;
                    }
                  }
LAB_0004eb80:
                  if (*(int *)(param_1 + 0x18) == 0) {
                    local_a0 = &local_4c;
                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */
                    *(undefined4 *)(puVar21 + -4) = 0x50198;
                    FUN_000494c0();
LAB_00050198:
                    ppuVar19 = local_94;
                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;
                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;
                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */
                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;
                    FUN_0008b620();
                  }
                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;
                  local_a0 = &local_4c;
                  local_40 = FUN_0004bfa0();
                  local_9c = &local_4c;
                }
LAB_0004e466:
                local_a0 = &local_4c;
                if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();
                  return;
                }
                goto LAB_0004e736;
              }
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0xc) = 1;
              *(undefined4 **)(puVar21 + -0x10) = local_90;
              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;
              cVar7 = FUN_00055ca0();
              puVar4 = local_90;
              if (cVar7 == '\0') {
LAB_0004f070:
                uVar10 = 0;
LAB_0004f078:
                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));
                goto LAB_0004e381;
              }
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0xc) = 0;
              *(undefined4 **)(puVar21 + -0x10) = local_90;
              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;
              cVar7 = FUN_00055ed0();
              if (cVar7 == '\0') goto LAB_0004f070;
              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {
                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;
                goto LAB_0004f070;
              }
              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||
                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))
              goto LAB_0004f070;
LAB_0004ea6a:
              *(undefined4 **)(puVar21 + -0x10) = local_90;
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;
              cVar7 = FUN_00055b70();
              if (cVar7 != '\0') goto LAB_0004f070;
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0x10) = param_6;
              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;
              cVar7 = FUN_0004c1a0();
              puVar4 = local_a4;
              if (cVar7 != '\0') {
                *(undefined4 *)(puVar21 + -8) = *local_a4;
                *(int **)(puVar21 + -0xc) = local_bc;
                *(byte ***)(puVar21 + -0x10) = local_9c;
                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;
                uVar11 = FUN_00056220();
                *puVar4 = uVar11;
              }
            }
            *(byte ***)(puVar21 + -0x10) = local_a0;
            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;
            FUN_00056330();
            if (local_90 != (undefined4 *)0x0) {
              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);
              uVar10 = uVar18 & 7;
              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {
                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
LAB_0004ecc9:
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));
                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)
                     ) {
                    iVar15 = *(int *)(local_94[0xbc] + 8);
                    if (iVar15 == 0) {
                      *(uint *)(puVar21 + -4) = uVar18;
                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */
                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;
                      FUN_0008b620();
                    }
                    if (*(char *)(iVar15 + 0x49b1) == '\0') {
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                      ppuVar19 = local_94 + 0xbc;
                      if (-1 < (char)bVar8) goto LAB_0004ed70;
                      if ((char)uVar10 == '\0') {
                        ppuVar19 = local_94 + -0xba878;
                        goto LAB_0004ed40;
                      }
LAB_0004f8f7:
                      bVar1 = *(byte *)((int)local_90 + 0x29);
                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);
                      bVar9 = bVar1 & 3;
                      if ((bVar1 & 3) != 0) {
                        uVar10 = uVar18 & 7;
                        goto LAB_0004eee0;
                      }
                      goto LAB_0004e538;
                    }
                  }
LAB_0004ef40:
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));
                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
LAB_0004eeb3:
                  if (bVar9 == 0) goto LAB_0004efaf;
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));
                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;
                  uVar10 = (uint)bVar8;
                  if (bVar8 != 0) goto LAB_0004eee0;
                }
                else {
                  ppuVar19 = local_94 + -0xba878;
                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);
                  if (ppuVar3 != ppuVar19) {
                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];
                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */
                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;
                    iVar15 = (*(code *)ppuVar3)();
                    if (iVar15 == 0) goto LAB_0004ef40;
                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);
                    uVar10 = uVar18 & 7;
                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {
                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                      if (-1 < (char)bVar8) goto LAB_0004f8c5;
                      goto LAB_0004f8f7;
                    }
                    if (local_90[3] == 0) {
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;
                    }
                    else {
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                    }
                    if ((char)bVar8 < '\0') {
LAB_0004ed40:
                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);
                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;
                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];
                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;
                      iVar15 = (*(code *)ppuVar3)();
                      ppuVar19 = local_e4;
                      if (iVar15 != 0) goto LAB_0004ed70;
                    }
                    else {
LAB_0004f8c5:
                      ppuVar19 = local_94 + 0xbc;
LAB_0004ed70:
                      piVar5 = *(int **)(*ppuVar19 + 0xc);
                      if (piVar5 == (int *)0x0) {
                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;
                        *(undefined4 *)(puVar21 + -0xc) = 0x69;
                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */
                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;
                        FUN_0008b620();
                      }
                      iVar15 = *piVar5;
                      *(undefined4 **)(puVar21 + -0xc) = local_90;
                      *(int **)(puVar21 + -0x10) = piVar5;
                      pcVar2 = *(code **)(iVar15 + 0x1c);
                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;
                      cVar7 = (*pcVar2)();
                      puVar4 = local_90;
                      if (cVar7 == '\0') {
                        iVar15 = *(int *)(*ppuVar19 + 8);
                        if (iVar15 == 0) {
                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;
                          FUN_0008b620();
                        }
                        pbVar17 = *(byte **)(iVar15 + 0x42e4);
                        bVar23 = false;
                        bVar25 = pbVar17 == (byte *)0x0;
                        if (bVar25) {
                          local_9c = (byte **)CONCAT31(local_9c._1_3_,
                                                       *(byte *)((int)local_90 + 0x29));
                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
LAB_0004ee51:
                          if ((bVar9 == 2) ||
                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||
                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {
LAB_0004ee67:
                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;
                            *(uint *)(puVar21 + -0x14) = local_b8;
                            *(int *)(puVar21 + -0x18) = local_a8;
                            *(undefined4 **)(puVar21 + -0x1c) = param_2;
                            *(undefined4 **)(puVar21 + -0x20) = local_90;
                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;
                            FUN_000833b0();
                            bVar8 = *(byte *)((int)puVar4 + 0x2b);
                            goto LAB_0004e538;
                          }
                        }
                        else {
                          iVar16 = 0xb;
                          pbVar14 = pbVar17;
                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);
                          do {
                            if (iVar16 == 0) break;
                            iVar16 = iVar16 + -1;
                            bVar23 = *pbVar14 < *pbVar22;
                            bVar25 = *pbVar14 == *pbVar22;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                          } while (bVar25);
                          bVar24 = false;
                          bVar23 = (!bVar23 && !bVar25) == bVar23;
                          if (bVar23) goto LAB_0004eea0;
                          iVar16 = 0xb;
                          pbVar14 = pbVar17;
                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);
                          do {
                            if (iVar16 == 0) break;
                            iVar16 = iVar16 + -1;
                            bVar24 = *pbVar14 < *pbVar22;
                            bVar23 = *pbVar14 == *pbVar22;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                          } while (bVar23);
                          bVar25 = false;
                          bVar23 = (!bVar24 && !bVar23) == bVar24;
                          if (bVar23) goto LAB_0004ee67;
                          iVar16 = 0x17;
                          pbVar14 = pbVar17;
                          ppuVar19 = local_94 + -0x3e3e4;
                          do {
                            if (iVar16 == 0) break;
                            iVar16 = iVar16 + -1;
                            bVar25 = *pbVar14 < *(byte *)ppuVar19;
                            bVar23 = *pbVar14 == *(byte *)ppuVar19;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
                          } while (bVar23);
                          local_9c = (byte **)CONCAT31(local_9c._1_3_,
                                                       *(byte *)((int)local_90 + 0x29));
                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
                          bVar23 = (!bVar25 && !bVar23) == bVar25;
                          if ((!bVar23) ||
                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {
                            bVar25 = false;
                            iVar16 = 0x16;
                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);
                            do {
                              if (iVar16 == 0) break;
                              iVar16 = iVar16 + -1;
                              bVar25 = *pbVar17 < *pbVar14;
                              bVar23 = *pbVar17 == *pbVar14;
                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            } while (bVar23);
                            if (((!bVar25 && !bVar23) != bVar25) ||
                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;
                          }
                        }
                        goto LAB_0004eeb3;
                      }
                    }
LAB_0004eea0:
                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));
                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
                    goto LAB_0004eeb3;
                  }
LAB_0004e51b:
                  bVar8 = *(byte *)((int)local_90 + 0x29);
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);
                  bVar9 = bVar8 & 3;
                  if ((bVar8 & 3) == 0) goto LAB_0004e534;
                  uVar10 = uVar18 & 7;
                }
                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));
                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)
                     ) goto LAB_0004ec9c;
LAB_0004ef17:
                  if (*(int *)(*local_e0 + 8) == 0) {
                    *(undefined ***)(puVar21 + -4) = local_e0;
                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */
                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;
                    FUN_0008b620();
                  }
                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {
                    if ((char)uVar10 != '\0') goto LAB_0004efaf;
                    goto LAB_0004ec9c;
                  }
LAB_0004ef58:
                  if (bVar9 == 2) {
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;
                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;
                    uVar11 = gettext();
                  }
                  else if (bVar9 < 3) {
                    if (bVar9 != 1) {
                      *(uint *)(puVar21 + -4) = uVar10;
                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;
                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;
                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */
                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;
                      FUN_0008b620();
                    }
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;
                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;
                    uVar11 = gettext();
                  }
                  else {
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;
                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;
                    uVar11 = gettext();
                  }
                  uVar13 = *local_90;
                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;
                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;
                  uVar12 = gettext();
                  *(undefined4 *)(puVar21 + -8) = uVar13;
                  *(undefined4 *)(puVar21 + -0xc) = uVar11;
                  *(undefined4 *)(puVar21 + -0x10) = uVar12;
                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;
                  FUN_000828d0();
                  goto LAB_0004efaf;
                }
LAB_0004ec9c:
                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;
                bVar8 = *(byte *)((int)local_90 + 0x2b);
              }
              else {
                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;
                bVar8 = *(byte *)((int)local_90 + 0x29);
                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);
                bVar9 = bVar8 & 3;
                if ((bVar8 & 3) == 0) {
LAB_0004e534:
                  bVar8 = *(byte *)((int)local_90 + 0x2b);
                  goto LAB_0004e538;
                }
LAB_0004eee0:
                if ((char)uVar10 == '\x04') {
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));
                  if (*(byte *)(local_90 + 10) >> 4 != 2) {
                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;
                    bVar8 = *(byte *)((int)local_90 + 0x2b);
                    goto LAB_0004e538;
                  }
                }
LAB_0004efaf:
                bVar8 = *(byte *)((int)local_90 + 0x2b);
              }
LAB_0004e538:
              if ((bVar8 & 4) != 0) {
                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;
                *(uint *)(puVar21 + -0x10) = local_b8;
                *(int *)(puVar21 + -0x14) = local_a8;
                puVar4 = (undefined4 *)*param_2;
                *(undefined4 **)(puVar21 + -0x18) = param_2;
                *(undefined4 **)(puVar21 + -0x1c) = local_90;
                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;
                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */
                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;
                local_90 = puVar4;
                FUN_001524d0();
              }
            }
          }
          else {
LAB_0004f130:
            local_78 = param_4;
            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {
LAB_0004f16b:
              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;
              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;
              uVar11 = gettext();
              *(undefined4 *)(puVar21 + -0x10) = uVar11;
              uVar10 = *local_78;
              *(undefined4 *)(puVar21 + -0x14) = 0;
              *(uint *)(puVar21 + -0x18) = uVar10;
              *(int *)(puVar21 + -0x1c) = local_a8;
              *(undefined4 **)(puVar21 + -0x20) = param_2;
                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */
              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;
              FUN_00082e10();
              local_74 = '\0';
              goto LAB_0004e30b;
            }
            bVar23 = false;
            bVar25 = local_90 == (undefined4 *)0x0;
            if (bVar25) goto LAB_0004f16b;
            iVar15 = 0x10;
            pbVar17 = (byte *)*local_90;
            pbVar14 = (byte *)((int)local_94 + -0xf3c55);
            do {
              if (iVar15 == 0) break;
              iVar15 = iVar15 + -1;
              bVar23 = *pbVar17 < *pbVar14;
              bVar25 = *pbVar17 == *pbVar14;
              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
            } while (bVar25);
            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;
            local_74 = '\0';
          }
        }
        *(byte ***)(puVar21 + -0x10) = local_c4;
        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;
        FUN_00056330();
        *(byte ***)(puVar21 + -0x10) = local_ac;
        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;
        FUN_00056330();
      }
      else {
        *(uint *)(puVar21 + -4) = local_b8;
        *(undefined4 *)(puVar21 + -8) = param_2[6];
        *(undefined4 *)(puVar21 + -0xc) = param_2[2];
        *(undefined4 *)(puVar21 + -0x10) = param_6;
                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */
        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;
        local_b8 = FUN_000efd20();
        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;
      }
      local_a8 = local_a8 + 1;
      param_4 = param_4 + 2;
      puVar6 = puVar21;
    } while (param_5 != local_a8);
  }
  if (local_74 != '\0') {
    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;
    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;
    uVar11 = gettext();
    *(undefined4 *)(puVar21 + -0x10) = uVar11;
    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;
    FUN_000828d0();
    return;
  }
  return;
}


CALL 0x00058c42
ADD EAX,0x2f0eeb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xdc
MOV dword ptr [EBP + 0xffffff70],EAX
MOVZX EAX,byte ptr [EBP + 0x20]
CMP dword ptr [EBP + 0x10],0x9
MOV byte ptr [EBP + 0xffffff33],AL
JNZ 0x00050336
MOV EAX,dword ptr [EBP + 0xc]
MOV EDI,dword ptr [EBP + 0xffffff70]
MOV byte ptr [EBP + -0x70],0x0
MOV dword ptr [EBP + -0x6c],0x0
MOV EBX,dword ptr [EAX + 0x8]
LEA ECX,[EDI + 0xffd15e30]
MOV EAX,dword ptr [EBX]
MOV dword ptr [EBP + 0xffffff44],EBX
MOV EDX,dword ptr [EAX + 0x8c]
CMP EDX,ECX
JNZ 0x00050010
SUB ESP,0xc
PUSH EBX
CALL dword ptr [EAX + 0xbc]
MOV dword ptr [EBP + 0xffffff28],EAX
MOV ECX,dword ptr [EBP + 0x18]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff50],0x0
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff5c],0x0
LEA EAX,[EAX + 0x2f0]
MOV dword ptr [EBP + 0xffffff24],EAX
MOV dword ptr [EBP + 0xffffff20],EAX
TEST ECX,ECX
JZ 0x0004e578
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0x14]
CMP byte ptr [EBP + 0xffffff33],0x0
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff4c],EAX
JNZ 0x0004f6c8
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x68],0x0
MOV dword ptr [EBP + -0x64],0xffffffff
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x60],0x80000000
MOV dword ptr [EBP + -0x5c],0x0
MOV EDI,EAX
SHR EDI,0x8
MOV dword ptr [EBP + 0xffffff60],EDI
CMP dword ptr [EBP + 0xffffff28],EDI
JBE 0x0004f700
MOV EDX,dword ptr [EBP + 0x30]
TEST EDX,EDX
JZ 0x0004f620
MOV ESI,dword ptr [EBP + 0x30]
MOV EBX,dword ptr [EBP + 0xffffff5c]
MOV EDX,dword ptr [ESI]
MOV ECX,dword ptr [EDX + EBX*0x4]
MOV dword ptr [EBP + 0xffffff74],ECX
TEST ECX,ECX
JZ 0x0004f620
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EAX,dword ptr [EAX + 0x10]
LEA EDX,[EAX + -0x1]
CMP EDX,-0x3
JBE 0x0004f6b0
MOV dword ptr [EBP + -0x68],0xffffffff
MOV EDI,dword ptr [EBP + 0xffffff74]
MOV EAX,dword ptr [EDI + 0x30]
MOV dword ptr [EBP + -0x5c],EAX
MOVZX EAX,byte ptr [EDI + 0x28]
AND EAX,0xf
CMP EAX,0x6
JZ 0x0004f610
CMP EAX,0xa
JNZ 0x0004e279
OR byte ptr [EBP + -0x5d],0x40
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EDX,byte ptr [EAX + 0x2b]
TEST DL,DL
JS 0x0004f2d0
LEA ESI,[EBP + -0x68]
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xffffff58],ESI
MOV dword ptr [EBP + 0xffffff68],ESI
MOV EAX,dword ptr [EAX + 0x4]
LEA ECX,[EBP + -0x58]
MOV dword ptr [EBP + -0x58],0x0
MOV dword ptr [EBP + -0x54],0xffffffff
MOV dword ptr [EBP + -0x50],0x80000000
MOV dword ptr [EBP + -0x4c],0x0
MOV dword ptr [EBP + 0xffffff40],ECX
MOV ESI,dword ptr [EBP + 0xffffff4c]
MOV EDI,dword ptr [EBP + 0x28]
MOVZX EAX,AL
MOV dword ptr [EBP + 0xffffff54],EAX
MOVZX EAX,byte ptr [EBP + -0x70]
ADD EDI,ESI
MOV dword ptr [EBP + 0xffffff3c],EDI
TEST ESI,ESI
JS 0x0004f118
CMP dword ptr [EBP + 0x2c],ESI
JBE 0x0004f118
ADD ESI,dword ptr [EBP + 0x24]
MOV dword ptr [EBP + 0xffffff60],ESI
MOV ESI,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x74],ESI
TEST AL,AL
JNZ 0x0004f130
MOV EBX,dword ptr [EBP + 0xffffff60]
TEST EBX,EBX
JZ 0x0004f1c0
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x48],0x0
MOV dword ptr [EBP + -0x44],0xffffffff
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x40],0x80000000
MOV dword ptr [EBP + -0x3c],0x0
MOV dword ptr [EBP + 0xffffff48],EAX
MOV EAX,dword ptr [EBP + 0xffffff74]
TEST EAX,EAX
JZ 0x0004f0d8
MOVZX EAX,byte ptr [EAX + 0x28]
MOV byte ptr [EBP + 0xffffff64],AL
AND EAX,0xf
CMP AL,0xa
JNZ 0x0004e36d
CMP dword ptr [EBP + 0xffffff54],0x1
JZ 0x0004e9f0
MOV EAX,dword ptr [EBP + 0xffffff54]
XOR EBX,EBX
SUB EAX,0x1
CMP EAX,0x2a
JBE 0x0004f078
MOV EAX,dword ptr [EBP + 0xffffff74]
CMP dword ptr [EAX + 0x18],-0x1
JZ 0x0004e45d
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EAX + 0x28]
MOV byte ptr [EBP + 0xffffff64],AL
AND EAX,0xf
CMP AL,0xa
JZ 0x0004eb80
SUB ESP,0x8
LEA EAX,[EBP + -0x48]
PUSH EBX
PUSH dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00055ca0
ADD ESP,0x10
TEST AL,AL
JNZ 0x0004e45d
MOV EDI,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EDI + 0x2a]
MOV byte ptr [EBP + 0xffffff64],AL
AND EAX,0x7
JNZ 0x0004e3f1
MOV EDX,dword ptr [EDI + 0x8]
TEST byte ptr [EDX + 0x2c],0x1
JNZ 0x0004eb80
MOV EDI,dword ptr [EBP + 0xffffff70]
LEA ESI,[EDI + 0x2f0]
MOV EDX,dword ptr [ESI]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x000501b9
CMP byte ptr [EDX + 0x1a25],0x0
JZ 0x0004e454
TEST AL,AL
JNZ 0x0004eb70
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EDX,dword ptr [EAX + 0xc]
TEST EDX,EDX
JNZ 0x0004e432
TEST byte ptr [EAX + 0x2b],0x20
JNZ 0x0004eb80
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff74]
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00055b70
ADD ESP,0x10
TEST AL,AL
JNZ 0x0004eb80
AND EBX,0x8
JNZ 0x0004ebc0
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EDI,dword ptr [EBP + 0xffffff54]
CMP EDI,0xfb
JA 0x0004eb58
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [ECX + EDI*0x4 + 0xfff0cdac]
ADD EAX,ECX
JMP EAX
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff64]
CALL 0x00056330
MOV EAX,dword ptr [EBP + 0xffffff74]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004e541
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EDI,byte ptr [EAX + 0x2a]
MOV ECX,EDI
AND ECX,0x7
JNZ 0x0004ecc0
MOV EBX,dword ptr [EAX + 0xc]
TEST EBX,EBX
JNZ 0x0004e4f9
TEST byte ptr [EAX + 0x2b],0x20
JNZ 0x0004ecc9
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EBX,dword ptr [EBP + 0xffffff70]
MOV EDX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffd15e20]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x14]
CMP EAX,EBX
JNZ 0x0004f890
MOV EBX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EBX + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x3
JNZ 0x0004ec80
MOVZX EDX,byte ptr [EBX + 0x2b]
AND EDX,0x4
JNZ 0x0004ec40
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff40]
CALL 0x00056330
POP EDX
PUSH dword ptr [EBP + 0xffffff58]
CALL 0x00056330
ADD ESP,0x10
ADD dword ptr [EBP + 0xffffff5c],0x1
MOV EAX,dword ptr [EBP + 0xffffff5c]
ADD dword ptr [EBP + 0x14],0x8
CMP dword ptr [EBP + 0x18],EAX
JNZ 0x0004e1c0
CMP byte ptr [EBP + -0x70],0x0
JNZ 0x0004ff80
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x20
JMP 0x0004e4b8
CALL 0x000283c0
POP EDX
POP ECX
PUSH dword ptr [EBP + 0xffffff54]
PUSH EAX
XOR EDX,EDX
MOV EAX,dword ptr [EBP + -0x74]
MOV EAX,dword ptr [EAX]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xc]
CALL 0x00082e10
JMP 0x0004e736
SUB ESP,0x8
LEA EAX,[EBP + -0x48]
PUSH 0x1
PUSH dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00055ca0
ADD ESP,0x10
TEST AL,AL
JZ 0x0004f070
MOV ESI,dword ptr [EBP + 0xffffff74]
SUB ESP,0x8
LEA EAX,[EBP + -0x48]
PUSH 0x0
PUSH ESI
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00055ed0
ADD ESP,0x10
TEST AL,AL
JZ 0x0004f070
MOVZX EAX,byte ptr [ESI + 0x2a]
MOV byte ptr [EBP + 0xffffff64],AL
AND EAX,0x7
JNZ 0x0004f060
MOV EAX,dword ptr [ESI + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JNZ 0x0004f070
MOV ECX,dword ptr [ESI + 0xc]
TEST ECX,ECX
JNZ 0x0004ea6a
TEST byte ptr [ESI + 0x2b],0x20
JNZ 0x0004f070
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff74]
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00055b70
ADD ESP,0x10
TEST AL,AL
JNZ 0x0004f070
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV ECX,0x1
MOV EDX,0x1
CALL 0x0004c1a0
ADD ESP,0x10
TEST AL,AL
JZ 0x0004e4b8
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
PUSH dword ptr [EBX]
PUSH dword ptr [EBP + 0xffffff48]
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x00056220
ADD ESP,0x10
MOV dword ptr [EBX],EAX
JMP 0x0004e4b8
MOV ESI,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[ESI + 0xfff0c528]
MOV EBX,ESI
PUSH EAX
JMP 0x0004e842
CMP AL,0x4
JNZ 0x0004e432
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x0005018a
MOV EDX,dword ptr [EBP + 0xffffff74]
LEA EBX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EBX
CALL 0x0004bfa0
MOV dword ptr [EBP + -0x3c],EAX
MOV dword ptr [EBP + 0xffffff64],EBX
MOV dword ptr [EBP + 0xffffff68],EBX
JMP 0x0004e466
MOV ECX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [ECX + 0x2a]
MOV byte ptr [EBP + 0xffffff64],AL
AND EAX,0x7
JNZ 0x0004fc50
MOV EDI,dword ptr [ECX + 0xc]
TEST EDI,EDI
JNZ 0x0004e45d
MOV EAX,dword ptr [EBP + 0xffffff74]
TEST byte ptr [EAX + 0x2b],0x20
JZ 0x0004e45d
MOV ECX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [ECX + 0x28]
MOV byte ptr [EBP + 0xffffff64],AL
SHR AL,0x4
CMP AL,0x2
JZ 0x0004eb80
TEST byte ptr [ECX + 0x2c],0x2
JNZ 0x0004eb80
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00050428
CMP byte ptr [EAX + 0x49b1],0x0
JNZ 0x0004eb80
JMP 0x0004e45d
MOV EAX,dword ptr [EBP + 0xffffff4c]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff70]
CDQ
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0xffffff5c]
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + 0xffffff74],EAX
ADD EAX,0x100
PUSH EAX
CALL 0x001524d0
ADD ESP,0x20
JMP 0x0004e541
MOV ECX,EDI
AND ECX,0x7
MOV EBX,dword ptr [EBP + 0xffffff74]
MOV ESI,dword ptr [EBX + 0xc]
TEST ESI,ESI
JNZ 0x0004ec9c
TEST byte ptr [EBX + 0x2b],0x20
JNZ 0x0004fdf0
MOV ESI,dword ptr [EBP + 0xffffff74]
MOV EDX,dword ptr [ESI + 0x8]
TEST byte ptr [EDX + 0x2c],0x1
JNZ 0x0004ef58
MOVZX EDX,byte ptr [ESI + 0x2b]
JMP 0x0004e538
CMP CL,0x4
JNZ 0x0004efe8
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EAX + 0x28]
MOV byte ptr [EBP + 0xffffff68],AL
SHR AL,0x4
CMP AL,0x2
MOV EAX,dword ptr [EBP + 0xffffff74]
JZ 0x0004ef40
TEST byte ptr [EAX + 0x2c],0x2
JNZ 0x0004ef40
MOV EAX,dword ptr [EBP + 0xffffff70]
LEA ESI,[EAX + 0x2f0]
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0005027f
CMP byte ptr [EAX + 0x49b1],0x0
MOV EAX,dword ptr [EBP + 0xffffff74]
JNZ 0x0004ef40
MOVZX EDX,byte ptr [EAX + 0x2b]
TEST DL,DL
JNS 0x0004ed70
TEST CL,CL
JNZ 0x0004f8f7
MOV EAX,dword ptr [EBP + 0xffffff70]
LEA EBX,[EAX + 0xffd15e20]
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x14]
CMP EAX,EBX
JZ 0x0004e51b
SUB ESP,0xc
PUSH EDX
CALL EAX
ADD ESP,0x10
MOV ESI,dword ptr [EBP + 0xffffff20]
TEST EAX,EAX
JZ 0x0004eea0
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000501dc
MOV EDX,dword ptr [EAX]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff74]
PUSH EAX
CALL dword ptr [EDX + 0x1c]
ADD ESP,0x10
TEST AL,AL
JNZ 0x0004eea0
MOV EAX,dword ptr [ESI]
MOV EBX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JZ 0x000501fa
MOV EDX,dword ptr [EBX + 0x42e4]
TEST EDX,EDX
JZ 0x0004f998
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV ECX,0xb
MOV ESI,EDX
LEA EDI,[EAX + 0xfff0705a]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0004eea0
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV ECX,0xb
MOV ESI,EDX
LEA EDI,[EAX + 0xfff07065]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0004ee67
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV ECX,0x17
MOV ESI,EDX
LEA EDI,[EAX + 0xfff07070]
CMPSB.REPE ES:EDI,ESI
MOV EDI,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EDI + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
SETA CL
SBB CL,0x0
AND EAX,0x3
TEST CL,CL
JNZ 0x0004ee2e
TEST byte ptr [EDI + 0x2b],0x1
JZ 0x0004eeb3
MOV ESI,dword ptr [EBP + 0xffffff70]
MOV ECX,0x16
LEA EDI,[ESI + 0xfff07087]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004fd50
CMP AL,0x2
JZ 0x0004ee67
CMP byte ptr [EBX + 0x1a25],0x0
JZ 0x0004ee67
CMP byte ptr [EBX + 0x4eb5],0x0
JZ 0x0004eeb3
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV EDI,dword ptr [EBP + 0xffffff74]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff70]
CDQ
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xc]
PUSH EDI
CALL 0x000833b0
ADD ESP,0x20
MOVZX EDX,byte ptr [EDI + 0x2b]
JMP 0x0004e538
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EAX + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x3
TEST AL,AL
JZ 0x0004efaf
MOV ECX,dword ptr [EBP + 0xffffff74]
MOVZX EBX,byte ptr [ECX + 0x2a]
MOV ECX,EBX
MOV byte ptr [EBP + 0xffffff68],BL
AND CL,0x7
JZ 0x0004ec85
LEA ESI,[ESI]
LEA ESI,[ESI]
CMP CL,0x4
JNZ 0x0004efaf
MOV EBX,dword ptr [EBP + 0xffffff74]
MOVZX EBX,byte ptr [EBX + 0x28]
MOV EDX,EBX
MOV byte ptr [EBP + 0xffffff68],BL
SHR DL,0x4
CMP DL,0x2
JZ 0x0004efaf
MOV EDI,dword ptr [EBP + 0xffffff74]
TEST byte ptr [EDI + 0x2c],0x2
JNZ 0x00050020
MOV EBX,dword ptr [EBP + 0xffffff24]
MOV EDX,dword ptr [EBX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x000500a1
CMP byte ptr [EDX + 0x49b1],0x0
JZ 0x0004ef58
TEST CL,CL
JNZ 0x0004efaf
JMP 0x0004ec9c
MOVZX EAX,byte ptr [EAX + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x3
JMP 0x0004eeb3
CMP AL,0x2
JZ 0x0004fce0
JBE 0x0004efc0
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff0c5aa]
PUSH EAX
CALL 0x000283c0
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV ECX,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
MOV EDI,dword ptr [EAX]
LEA EAX,[ECX + 0xfff0ca34]
MOV EBX,ECX
PUSH EAX
CALL 0x000283c0
ADD ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x000828d0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EDX,byte ptr [EAX + 0x2b]
JMP 0x0004e538
CMP AL,0x1
JNZ 0x0005023c
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff0c59a]
PUSH EAX
CALL 0x000283c0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x0004ef7c
MOV EBX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EBX + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x3
JZ 0x0004e534
JMP 0x0004eee0
CMP AL,0x4
JNZ 0x0004ea6a
LEA ESI,[ESI]
NOP
XOR EAX,EAX
LEA ESI,[ESI]
MOV ECX,dword ptr [EBP + 0xffffff70]
MOVSX EBX,byte ptr [ECX + EAX*0x1 + 0xfff0dfc0]
JMP 0x0004e381
MOV EAX,dword ptr [EBP + 0xffffff68]
TEST byte ptr [EAX + 0xb],0x40
JNZ 0x0004f200
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV ESI,dword ptr [EBP + 0xffffff54]
CMP ESI,0xfb
JA 0x0004eb58
MOV EBX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [EBX + ESI*0x4 + 0xfff0d19c]
ADD EAX,EBX
JMP EAX
MOV dword ptr [EBP + 0xffffff60],0x0
MOV ESI,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x74],ESI
TEST AL,AL
JZ 0x0004f1c0
MOV ECX,dword ptr [EBP + 0xffffff54]
LEA EAX,[ECX + -0x2]
AND EAX,0xfffffffd
JZ 0x0004f143
CMP ECX,0x2b
JNZ 0x0004f16b
MOV EAX,dword ptr [EBP + 0xffffff74]
TEST EAX,EAX
JZ 0x0004f16b
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV ECX,0x10
LEA EDI,[EAX + 0xfff0c3ab]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0004f1b0
MOV ESI,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[ESI + 0xfff0c908]
MOV EBX,ESI
PUSH EAX
CALL 0x000283c0
XOR EDX,EDX
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [EBP + -0x74]
MOV EAX,dword ptr [EAX]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xc]
CALL 0x00082e10
ADD ESP,0x20
MOV byte ptr [EBP + -0x70],0x0
JMP 0x0004e30b
MOV byte ptr [EBP + -0x70],0x0
JMP 0x0004e541
MOV EDI,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff0c581]
MOV EBX,EDI
PUSH EAX
CALL 0x000283c0
MOV ECX,dword ptr [EBP + 0xffffff4c]
POP ESI
POP EDI
PUSH ECX
PUSH EAX
MOV EAX,ECX
CDQ
PUSH EDX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xc]
CALL 0x00082e10
JMP 0x0004ec77
MOV EAX,dword ptr [EBP + -0x74]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff70]
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
SHR ESI,0x8
PUSH ESI
PUSH dword ptr [EBP + 0xffffff48]
CALL 0x000c21d0
ADD ESP,0x10
TEST AL,AL
JZ 0x0004f0e8
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x00050355
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x00050363
MOV ECX,dword ptr [EAX + 0x4]
MOV EBX,dword ptr [EAX + 0x8]
SUB ESP,0xc
MOV EDI,dword ptr [EAX + 0x40]
MOV EDX,dword ptr [EAX]
PUSH EAX
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff68],ECX
MOV dword ptr [EBP + 0xffffff6c],EBX
ADD EDI,0x1
MOV dword ptr [EBP + 0xffffff64],EAX
CALL dword ptr [EDX + 0x64]
IMUL EDI,EAX
POP EDX
POP ECX
XOR EDX,EDX
MOV ECX,dword ptr [EBP + 0xffffff48]
MOV EAX,EDI
ADD EAX,dword ptr [EBP + 0xffffff68]
ADC EDX,dword ptr [EBP + 0xffffff6c]
MOV dword ptr [EBP + 0xffffff68],EAX
MOV EAX,dword ptr [ECX]
PUSH ESI
PUSH ECX
LEA ECX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff6c],EDX
MOV dword ptr [EBP + 0xffffff64],ECX
CALL dword ptr [EAX + 0xa8]
ADD ESP,0x10
ADD EAX,dword ptr [EBP + 0xffffff68]
MOV dword ptr [EBP + -0x3c],EAX
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV dword ptr [EBP + 0xffffff68],EAX
JMP 0x0004f0f1
MOV ECX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [ECX + 0x2a]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x7
JNZ 0x0004f310
MOV ESI,dword ptr [ECX + 0xc]
TEST ESI,ESI
JNZ 0x0004f2f1
AND EDX,0x20
JNZ 0x0004f318
MOV EAX,dword ptr [EBP + 0x14]
LEA EBX,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],EBX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + 0xffffff68],EBX
JMP 0x0004e2a0
CMP AL,0x4
JNZ 0x0004f5f0
MOV dword ptr [EBP + 0xffffff54],0x0
LEA EAX,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],EAX
MOV dword ptr [EBP + 0xffffff68],EAX
MOV EDI,dword ptr [EBP + 0xffffff44]
MOV EBX,dword ptr [EBP + 0xc]
LEA ECX,[EBP + -0x48]
SUB ESP,0x4
MOV dword ptr [EBP + 0xffffff64],ECX
MOV EAX,dword ptr [EDI]
PUSH dword ptr [EBX + 0x18]
PUSH EDI
PUSH ECX
LEA ECX,[EBP + -0x58]
MOV dword ptr [EBP + -0x58],0x0
MOV dword ptr [EBP + -0x54],0xffffffff
MOV dword ptr [EBP + -0x50],0x80000000
MOV dword ptr [EBP + -0x4c],0x0
MOV dword ptr [EBP + 0xffffff40],ECX
CALL dword ptr [EAX + 0x40]
MOV EAX,dword ptr [EBP + 0xffffff50]
ADD ESP,0xc
TEST EAX,EAX
JNZ 0x0004f5c0
MOV EAX,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + 0xffffff70]
MOV ECX,0x6
LEA EDI,[EBX + 0xfff0c53d]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0004f440
LEA EAX,[EBP + -0x30]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff54]
PUSH dword ptr [EBP + 0xffffff44]
CALL 0x000c2280
ADD ESP,0x10
XOR EDX,EDX
CMP byte ptr [EBP + -0x30],0x0
JZ 0x0004f3e3
MOV EBX,dword ptr [EBP + 0xffffff68]
ADD EAX,dword ptr [EBX + 0xc]
MOV EDX,EAX
MOV dword ptr [EBP + -0x4c],EDX
MOV dword ptr [EBP + 0xffffff50],0x1
MOV ESI,dword ptr [EBP + -0x58]
TEST ESI,ESI
JNZ 0x000500ef
MOV EAX,dword ptr [EBP + -0x48]
LEA EDX,[EBP + -0x40]
MOV dword ptr [EBP + -0x58],0xffffffff
CMP EAX,EDX
JZ 0x0004f41e
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x14]
LEA ESI,[EBP + -0x58]
MOV dword ptr [EBP + 0xffffff40],ESI
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + 0xffffff68],ESI
JMP 0x0004e2c5
MOV ECX,0x7
LEA EDI,[EBX + 0xfff0c544]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004f3ac
MOV ECX,0x11
LEA EDI,[EBX + 0xfff0c54c]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004f3ac
MOV ECX,0x5
LEA EDI,[EBX + 0xfff0c55e]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004f3ac
MOV ECX,0x5
LEA EDI,[EBX + 0xfff0c564]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004f3ac
MOV ECX,0x4
LEA EDI,[EBX + 0xfff0c56a]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004f3ac
MOV ECX,0xa
LEA EDI,[EBX + 0xfff0edee]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0004f5da
MOV ESI,EAX
MOV ECX,0x12
LEA EDI,[EBX + 0xfff0c56f]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0004f5da
MOV EAX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + 0xffffff74]
MOV ESI,dword ptr [EAX + 0x8]
TEST EBX,EBX
JZ 0x0004f938
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
PUSH dword ptr [EBP + 0xffffff74]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EAX
CALL 0x0014f9f0
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV EDI,dword ptr [EBP + -0x30]
LEA EAX,[ECX + 0xfff0c870]
MOV EBX,ECX
PUSH EAX
CALL 0x000283c0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV EDI,dword ptr [EBP + 0xffffff70]
CDQ
PUSH EDX
MOV EBX,EDI
PUSH EAX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xc]
CALL 0x00082e10
MOV EAX,dword ptr [EBP + -0x30]
LEA EDX,[EBP + -0x28]
ADD ESP,0x20
CMP EAX,EDX
JZ 0x0004f589
SUB ESP,0xc
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
LEA EAX,[EBP + -0x7e]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EAX
LEA EAX,[EBP + -0x7c]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff60]
PUSH ESI
CALL 0x000c5610
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f830
MOV dword ptr [EBP + 0xffffff50],0x3
JMP 0x0004f5e4
CMP dword ptr [EBP + 0xffffff50],0x1
JZ 0x0004f3ac
CMP dword ptr [EBP + 0xffffff50],0x3
JZ 0x0004f50a
MOV dword ptr [EBP + 0xffffff50],0x2
MOV dword ptr [EBP + -0x4c],0x0
JMP 0x0004f3f0
MOV EAX,dword ptr [EBP + 0x14]
LEA EDI,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],EDI
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + 0xffffff68],EDI
JMP 0x0004e2a0
OR byte ptr [EBP + -0x5d],0x20
JMP 0x0004e279
MOV ESI,dword ptr [EBP + 0xffffff44]
MOV ECX,dword ptr [ESI + 0xdc]
MOV ESI,dword ptr [ESI + 0xe0]
MOV EDX,ESI
MOV dword ptr [EBP + 0xffffff74],ESI
SUB EDX,ECX
SAR EDX,0x4
CMP dword ptr [EBP + 0xffffff60],EDX
JNC 0x00050148
MOV EDX,dword ptr [EBP + 0xffffff60]
SHL EDX,0x4
LEA ESI,[ECX + EDX*0x1]
MOV ECX,dword ptr [ESI + 0x8]
MOV dword ptr [EBP + 0xffffff68],ESI
MOV EDI,ECX
MOV dword ptr [EBP + 0xffffff74],ECX
AND EDI,0x7ffffff
MOV dword ptr [EBP + 0xffffff54],EDI
TEST byte ptr [ESI + 0xb],0x8
JZ 0x0004f682
TEST EDI,EDI
JNZ 0x0004f7e0
MOV dword ptr [EBP + 0xffffff74],0x0
LEA EDI,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],EDI
JMP 0x0004e2a0
TEST ECX,ECX
JZ 0x0004f6b0
CMP ECX,-0x2
JNZ 0x00050080
LEA ESI,[ESI]
CMP EDX,-0x3
JZ 0x00050198
MOV dword ptr [EBP + -0x68],EAX
JMP 0x0004e254
PUSH EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH dword ptr [EAX + 0x18]
PUSH dword ptr [EAX + 0x8]
PUSH dword ptr [EBP + 0x1c]
CALL 0x000efd20
MOV dword ptr [EBP + 0xffffff4c],EAX
ADD ESP,0x10
CMP EAX,-0x1
JNZ 0x0004e1d8
JMP 0x0004e55e
MOV EAX,dword ptr [EBP + 0x30]
TEST EAX,EAX
JZ 0x0004f723
MOV EAX,dword ptr [EBP + 0x30]
MOV ECX,dword ptr [EBP + 0xffffff5c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + ECX*0x4]
MOV dword ptr [EBP + 0xffffff74],EAX
TEST EAX,EAX
JNZ 0x0004e238
MOV EDI,dword ptr [EBP + 0xffffff44]
MOV ESI,dword ptr [EBP + 0xffffff60]
MOV EAX,dword ptr [EDI + 0xb0]
CMP ESI,EAX
JC 0x00050110
MOV ECX,ESI
MOV EDX,dword ptr [EDI + 0xbc]
SUB ECX,EAX
MOV EAX,dword ptr [EDI + 0xc0]
MOV dword ptr [EBP + 0xffffff74],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP ECX,EAX
JNC 0x00050169
MOV EAX,dword ptr [EDX + ECX*0x4]
MOV dword ptr [EBP + 0xffffff74],EAX
TEST EAX,EAX
JZ 0x00050110
MOV EAX,dword ptr [EBP + 0xffffff74]
TEST byte ptr [EAX + 0x2a],0x10
JZ 0x0004e238
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EAX
MOV EAX,dword ptr [EBP + 0xc]
PUSH dword ptr [EAX]
CALL 0x0014ec30
MOV dword ptr [EBP + 0xffffff74],EAX
MOV EAX,dword ptr [EAX + 0x10]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x68]
LEA EDX,[EAX + -0x1]
CMP EDX,-0x3
JBE 0x0004f6a0
TEST ECX,ECX
JZ 0x0004e24d
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e390]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x716
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff44]
MOV ECX,dword ptr [EBX + 0x38]
MOV EBX,dword ptr [EBX + 0x3c]
MOV EDX,EBX
MOV dword ptr [EBP + 0xffffff74],EBX
SUB EDX,ECX
SAR EDX,0x2
CMP EDI,EDX
JNC 0x0005029b
MOV EDI,dword ptr [EBP + 0xffffff54]
MOV ECX,dword ptr [ECX + EDI*0x4]
MOV dword ptr [EBP + 0xffffff74],ECX
TEST ECX,ECX
JZ 0x0004fd00
MOV dword ptr [EBP + 0xffffff74],0x0
LEA ESI,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],ESI
JMP 0x0004e2a0
SUB ESP,0x4
LEA EDX,[EBP + -0x78]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000c24f0
MOV EDI,EAX
MOV EAX,dword ptr [EBP + -0x78]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004ff40
TEST EDI,EDI
JZ 0x0004f5ae
MOV ESI,dword ptr [EDI + 0x4]
MOV EDI,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff0c8e4]
MOV EBX,EDI
PUSH EAX
CALL 0x000283c0
POP EDI
POP EDX
PUSH ESI
PUSH EAX
CALL 0x00082930
ADD ESP,0x10
JMP 0x0004f5ae
SUB ESP,0xc
PUSH EDX
CALL EAX
ADD ESP,0x10
TEST EAX,EAX
MOV EAX,dword ptr [EBP + 0xffffff74]
JZ 0x0004ef40
MOVZX EDI,byte ptr [EAX + 0x2a]
MOV ECX,EDI
AND ECX,0x7
JNZ 0x0004f8e0
MOV EDX,dword ptr [EAX + 0xc]
TEST EDX,EDX
JZ 0x0004f920
MOVZX EDX,byte ptr [EAX + 0x2b]
TEST DL,DL
JS 0x0004ed40
MOV EAX,dword ptr [EBP + 0xffffff70]
LEA ESI,[EAX + 0x2f0]
JMP 0x0004ed70
CMP CL,0x4
JZ 0x0004ecc9
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EDX,byte ptr [EAX + 0x2b]
TEST DL,DL
JNS 0x0004f8c5
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EAX + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x3
JZ 0x0004e538
MOV ECX,EDI
AND ECX,0x7
JMP 0x0004eee0
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EDX,byte ptr [EAX + 0x2b]
TEST DL,0x20
JZ 0x0004f8bd
JMP 0x0004ecc9
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff60]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH ESI
CALL 0x000c62d0
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV EDI,EAX
MOV EBX,ECX
LEA EAX,[ECX + 0xfff0c818]
MOV dword ptr [ESP],EAX
CALL 0x000283c0
ADD ESP,0xc
PUSH dword ptr [EBP + 0xffffff60]
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EDI
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff4c]
CDQ
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xc]
CALL 0x00082e10
ADD ESP,0x20
JMP 0x0004f589
MOV EAX,dword ptr [EBP + 0xffffff74]
MOVZX EAX,byte ptr [EAX + 0x29]
MOV byte ptr [EBP + 0xffffff68],AL
AND EAX,0x3
JMP 0x0004ee51
CMP AL,0x4
JZ 0x0004ebf4
JMP 0x0004e45d
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff0c5a3]
PUSH EAX
CALL 0x000283c0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x0004ef7c
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EDI
PUSH dword ptr [EBP + 0xffffff44]
PUSH dword ptr [EAX]
CALL 0x0014ebc0
ADD ESP,0x10
TEST AL,AL
JNZ 0x0004fdc8
LEA EAX,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],EAX
JMP 0x0004f331
MOV ESI,dword ptr [EBP + 0xffffff74]
CMP byte ptr [ESI + 0x2a],0x0
JS 0x0004ee51
JMP 0x0004eeb3
MOV EAX,dword ptr [EBP + 0x14]
LEA ESI,[EBP + -0x68]
MOV dword ptr [EBP + 0xffffff58],ESI
MOV EAX,dword ptr [EAX + 0x4]
JMP 0x0004e2a0
MOV EBX,dword ptr [EBP + 0xffffff74]
MOVZX EBX,byte ptr [EBX + 0x28]
MOV EDX,EBX
MOV byte ptr [EBP + 0xffffff68],BL
SHR DL,0x4
CMP DL,0x2
JZ 0x0004ec9c
MOV EBX,dword ptr [EBP + 0xffffff74]
TEST byte ptr [EBX + 0x2c],0x2
JZ 0x0004ef17
JMP 0x0004ec9c
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EAX
PUSH ESI
CALL 0x000c62d0
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV ESI,EAX
MOV EBX,ECX
LEA EAX,[ECX + 0xfff0c8c4]
MOV dword ptr [ESP],EAX
CALL 0x000283c0
POP ECX
POP EBX
PUSH ESI
PUSH EAX
MOV EBX,dword ptr [EBP + 0xffffff70]
CALL 0x00082930
ADD ESP,0x10
JMP 0x0004f854
MOV EDI,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff0c908]
MOV EBX,EDI
PUSH EAX
CALL 0x000283c0
MOV dword ptr [ESP],EAX
CALL 0x000828d0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff44]
CALL EDX
JMP 0x0004e17d
MOVZX EDX,byte ptr [EDI + 0x2b]
JMP 0x0004e538
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e3ac]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x70c
PUSH EAX
CALL 0x0008b620
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff70]
LEA EAX,[EBX + 0xfff0e588]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e390]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x716
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e3c4]
PUSH EAX
LEA EAX,[EBX + 0xfff0c4d9]
PUSH 0x17f
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e754]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x8c1
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e4f8]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x8ad
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x000494c0
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e3ac]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x70d
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
LEA EAX,[EDI + 0xfff0e588]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfff0726d]
PUSH 0x5c
PUSH EAX
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e29c]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x69
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0e588]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH ECX
LEA EAX,[EBX + 0xfff0e288]
PUSH EAX
LEA EAX,[EBX + 0xfff0c4d9]
PUSH 0xa4
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EDI
LEA EAX,[EBX + 0xfff0e588]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH EDI
LEA EAX,[EBX + 0xfff0e4a4]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x50b
PUSH EAX
CALL 0x0008b620
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff70]
LEA EAX,[EBX + 0xfff0e3d8]
PUSH EAX
LEA EAX,[EBX + 0xfff0c3bb]
PUSH 0xe64
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x000494c0
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff70]
LEA EAX,[EBX + 0xfff0e770]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0xc5
PUSH EAX
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + 0xffffff70]
PUSH ESI
LEA EAX,[EBX + 0xfff0e588]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )\n\n{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )\n\n{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "char param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "uint param_10" type_identifier identifier) , (parameter_declaration "int *param_11" primitive_type (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "undefined1 auStack_ec [8];" type_identifier (array_declarator "auStack_ec [8]" identifier [ number_literal ]) ;) (declaration "undefined **local_e4;" type_identifier (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier)) ;) (declaration "undefined **local_e0;" type_identifier (pointer_declarator "**local_e0" * (pointer_declarator "*local_e0" * identifier)) ;) (declaration "undefined4 *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "char local_d1;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte **local_c4;" type_identifier (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)) ;) (declaration "int *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "int *local_bc;" primitive_type (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "byte **local_ac;" type_identifier (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "undefined4 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "byte **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "byte **local_9c;" type_identifier (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined **local_94;" type_identifier (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "undefined4 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined1 local_82 [2];" type_identifier (array_declarator "local_82 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_80 [4];" type_identifier (array_declarator "local_80 [4]" identifier [ number_literal ]) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char local_74;" primitive_type identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "byte *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "byte *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "byte local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "local_94 = &__DT_PLTGOT;" (assignment_expression "local_94 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_d1 = param_7;" (assignment_expression "local_d1 = param_7" identifier = identifier) ;) (if_statement "if (param_3 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }" if (parenthesized_expression "(param_3 != 9)" ( (binary_expression "param_3 != 9" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }" { comment (expression_statement "FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");" (call_expression "FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section")" identifier (argument_list "("../../gold/i386.cc",0xe64,"relocate_section")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_section"" " string_content ") ))) ;) })) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (int *)param_2[2];" (assignment_expression "local_c0 = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar2 = *(code **)(*local_c0 + 0x8c);" (assignment_expression "pcVar2 = *(code **)(*local_c0 + 0x8c)" identifier = (pointer_expression "*(code **)(*local_c0 + 0x8c)" * (cast_expression "(code **)(*local_c0 + 0x8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_c0 + 0x8c)" ( (binary_expression "*local_c0 + 0x8c" (pointer_expression "*local_c0" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar2 == FUN_00054e30) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" if (parenthesized_expression "(pcVar2 == FUN_00054e30)" ( (binary_expression "pcVar2 == FUN_00054e30" identifier == identifier) )) (compound_statement "{\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }" { comment (expression_statement "local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);" (assignment_expression "local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0)" identifier = (cast_expression "(undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*local_c0 + 0xbc))(local_c0)" (parenthesized_expression "(**(code **)(*local_c0 + 0xbc))" ( (pointer_expression "**(code **)(*local_c0 + 0xbc)" * (pointer_expression "*(code **)(*local_c0 + 0xbc)" * (cast_expression "(code **)(*local_c0 + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_c0 + 0xbc)" ( (binary_expression "*local_c0 + 0xbc" (pointer_expression "*local_c0" * identifier) + number_literal) ))))) )) (argument_list "(local_c0)" ( identifier ))))) ;) }) (else_clause "else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" else (compound_statement "{\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" { comment (expression_statement "local_dc = (undefined4 *)(*pcVar2)(local_c0);" (assignment_expression "local_dc = (undefined4 *)(*pcVar2)(local_c0)" identifier = (cast_expression "(undefined4 *)(*pcVar2)(local_c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)(local_c0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(local_c0)" ( identifier ))))) ;) }))) (expression_statement "puVar21 = auStack_ec;" (assignment_expression "puVar21 = auStack_ec" identifier = identifier) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = local_94 + 0xbc;" (assignment_expression "local_e4 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (expression_statement "puVar6 = auStack_ec;" (assignment_expression "puVar6 = auStack_ec" identifier = identifier) ;) (expression_statement "local_e0 = local_e4;" (assignment_expression "local_e0 = local_e4" identifier = identifier) ;) (if_statement "if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }" { (do_statement "do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);" do (compound_statement "{\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    }" { (expression_statement "puVar21 = puVar6;" (assignment_expression "puVar21 = puVar6" identifier = identifier) ;) (expression_statement "local_b8 = *param_4;" (assignment_expression "local_b8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" if (parenthesized_expression "(local_d1 == '\0')" ( (binary_expression "local_d1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }" { (labeled_statement "LAB_0004e1d8:\n        local_6c = (byte *)0x0;" statement_identifier : (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_68 = 0xffffffff;" (assignment_expression "local_68 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "local_64 = 0x80000000;" (assignment_expression "local_64 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (undefined4 *)(uVar10 >> 8);" (assignment_expression "local_a4 = (undefined4 *)(uVar10 >> 8)" identifier = (cast_expression "(undefined4 *)(uVar10 >> 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" if (parenthesized_expression "(local_a4 < local_dc)" ( (binary_expression "local_a4 < local_dc" identifier < identifier) )) (compound_statement "{\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }" { (if_statement "if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }" if (parenthesized_expression "((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))" ( (binary_expression "(param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (parenthesized_expression "(param_11 != (int *)0x0)" ( (binary_expression "param_11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" ( (comma_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0" (assignment_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4)" identifier = (pointer_expression "*(undefined4 **)(*param_11 + local_a8 * 4)" * (cast_expression "(undefined4 **)(*param_11 + local_a8 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_11 + local_a8 * 4)" ( (binary_expression "*param_11 + local_a8 * 4" (pointer_expression "*param_11" * identifier) + (binary_expression "local_a8 * 4" identifier * number_literal)) ))))) , (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }" { (labeled_statement "LAB_0004e238:\n            pbVar14 = (byte *)local_90[4];" statement_identifier : (expression_statement "pbVar14 = (byte *)local_90[4];" (assignment_expression "pbVar14 = (byte *)local_90[4]" identifier = (cast_expression "(byte *)local_90[4]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[4]" identifier [ number_literal ]))) ;)) (expression_statement "pbVar17 = pbVar14 + -1;" (assignment_expression "pbVar17 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;" if (parenthesized_expression "(pbVar17 < (byte *)0xfffffffe)" ( (binary_expression "pbVar17 < (byte *)0xfffffffe" identifier < (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f6b0;" goto statement_identifier ;)) (labeled_statement "LAB_0004e24d:\n            local_6c = (byte *)0xffffffff;" statement_identifier : (expression_statement "local_6c = (byte *)0xffffffff;" (assignment_expression "local_6c = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar14 = local_6c;" (assignment_expression "pbVar14 = local_6c" identifier = identifier) ;) (goto_statement "goto LAB_0004e254;" goto statement_identifier ;) })) (expression_statement "local_90 = (undefined4 *)local_c0[0x38];" (assignment_expression "local_90 = (undefined4 *)local_c0[0x38]" identifier = (cast_expression "(undefined4 *)local_c0[0x38]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0x38]" identifier [ number_literal ]))) ;) (if_statement "if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4)" ( (binary_expression "(undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4" (cast_expression "(undefined4 *)((int)local_90 - local_c0[0x37] >> 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 - local_c0[0x37] >> 4)" ( (binary_expression "(int)local_90 - local_c0[0x37] >> 4" (binary_expression "(int)local_90 - local_c0[0x37]" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c62b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x8c1;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x8c1" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x50169;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x50169" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);" (assignment_expression "local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10)" identifier = (cast_expression "(byte **)(local_c0[0x37] + (int)local_a4 * 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c0[0x37] + (int)local_a4 * 0x10)" ( (binary_expression "local_c0[0x37] + (int)local_a4 * 0x10" (subscript_expression "local_c0[0x37]" identifier [ number_literal ]) + (binary_expression "(int)local_a4 * 0x10" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "local_b0 = (uint)local_9c[2] & 0x7ffffff;" (assignment_expression "local_b0 = (uint)local_9c[2] & 0x7ffffff" identifier = (binary_expression "(uint)local_9c[2] & 0x7ffffff" (cast_expression "(uint)local_9c[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_9c[2]" identifier [ number_literal ])) & number_literal)) ;) (if_statement "if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0))" ( (binary_expression "((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)" (parenthesized_expression "((*(byte *)((int)local_9c + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_9c + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_9c + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_9c + 0xb) & 8" (pointer_expression "*(byte *)((int)local_9c + 0xb)" * (cast_expression "(byte *)((int)local_9c + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0xb)" ( (binary_expression "(int)local_9c + 0xb" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_90 = (undefined4 *)0x0;" (assignment_expression "local_90 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (expression_statement "local_90 = (undefined4 *)local_c0[0xf];" (assignment_expression "local_90 = (undefined4 *)local_c0[0xf]" identifier = (cast_expression "(undefined4 *)local_c0[0xf]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0xf]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0)" ( (binary_expression "(uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0" (call_expression "(uint)((int)local_90 - local_c0[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - local_c0[0xe] >> 2)" ( (binary_expression "(int)local_90 - local_c0[0xe] >> 2" (binary_expression "(int)local_90 - local_c0[0xe]" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }" { (expression_statement "*(uint *)(puVar21 + -4) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -4) = local_b0" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c6d7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_000502ba" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);" (assignment_expression "local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4)" identifier = (pointer_expression "*(undefined4 **)(local_c0[0xe] + local_b0 * 4)" * (cast_expression "(undefined4 **)(local_c0[0xe] + local_b0 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c0[0xe] + local_b0 * 4)" ( (binary_expression "local_c0[0xe] + local_b0 * 4" (subscript_expression "local_c0[0xe]" identifier [ number_literal ]) + (binary_expression "local_b0 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(local_90 != (undefined4 *)0x0)" ( (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_90 = (undefined4 *)0x0;" (assignment_expression "local_90 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (expression_statement "*(uint *)(puVar21 + -8) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -8) = local_b0" (pointer_expression "*(uint *)(puVar21 + -8)" * (cast_expression "(uint *)(puVar21 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0xc) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_c0" (pointer_expression "*(int **)(puVar21 + -0xc)" * (cast_expression "(int **)(puVar21 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = *param_2;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = *param_2" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (pointer_expression "*param_2" * identifier)) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4fd1a" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_0014ebc0();" (assignment_expression "cVar7 = FUN_0014ebc0()" identifier = (call_expression "FUN_0014ebc0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }" { (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f331:\n          local_ac = &local_6c;" statement_identifier : (expression_statement "local_ac = &local_6c;" (assignment_expression "local_ac = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "iVar15 = *local_c0;" (assignment_expression "iVar15 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -8) = param_2[6];" (assignment_expression "*(undefined4 *)(puVar21 + -8) = param_2[6]" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(puVar21 + -0xc) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_c0" (pointer_expression "*(int **)(puVar21 + -0xc)" * (cast_expression "(int **)(puVar21 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = &local_5c;" (assignment_expression "local_c4 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_5c = (byte *)0x0;" (assignment_expression "local_5c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_54 = 0x80000000;" (assignment_expression "local_54 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "pcVar2 = *(code **)(iVar15 + 0x40);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0x40)" identifier = (pointer_expression "*(code **)(iVar15 + 0x40)" * (cast_expression "(code **)(iVar15 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x40)" ( (binary_expression "iVar15 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f375;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f375" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -4;" (assignment_expression "puVar20 = puVar21 + -4" identifier = (binary_expression "puVar21 + -4" identifier + number_literal)) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = local_b4 == 0;" (assignment_expression "bVar25 = local_b4 == 0" identifier = (binary_expression "local_b4 == 0" identifier == number_literal)) ;) (if_statement "if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }" { (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3ac3);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3ac3)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3ac3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3ac3)" ( (binary_expression "(int)local_94 + -0xf3ac3" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar14;" (assignment_expression "bVar23 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar14;" (assignment_expression "bVar25 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3ceaf;" (assignment_expression "ppuVar19 = local_94 + -0x3ceaf" identifier = (binary_expression "local_94 + -0x3ceaf" identifier + number_literal)) ;) (do_statement "do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);" do (compound_statement "{\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar24 = *pbVar17 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3cead;" (assignment_expression "ppuVar19 = local_94 + -0x3cead" identifier = (binary_expression "local_94 + -0x3cead" identifier + number_literal)) ;) (do_statement "do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);" do (compound_statement "{\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar17 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3aa2);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3aa2)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3aa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3aa2)" ( (binary_expression "(int)local_94 + -0xf3aa2" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3cea7;" (assignment_expression "ppuVar19 = local_94 + -0x3cea7" identifier = (binary_expression "local_94 + -0x3cea7" identifier + number_literal)) ;) (do_statement "do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);" do (compound_statement "{\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar17 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" { (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3a96);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3a96)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3a96)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3a96)" ( (binary_expression "(int)local_94 + -0xf3a96" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);" do (compound_statement "{\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" { (expression_statement "iVar15 = 10;" (assignment_expression "iVar15 = 10" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf1212);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf1212)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf1212)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf1212)" ( (binary_expression "(int)local_94 + -0xf1212" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);" do (compound_statement "{\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }" { (expression_statement "iVar15 = 0x12;" (assignment_expression "iVar15 = 0x12" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3a91);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3a91)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3a91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3a91)" ( (binary_expression "(int)local_94 + -0xf3a91" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);" do (compound_statement "{\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;" if (parenthesized_expression "((!bVar24 && !bVar23) != bVar24)" ( (binary_expression "(!bVar24 && !bVar23) != bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_0004f50a;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0004f5da;" goto statement_identifier ;) })) })) })) })) })) })) (labeled_statement "LAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;" statement_identifier : (expression_statement "*(undefined1 ***)(puVar21 + -8) = local_34;" (assignment_expression "*(undefined1 ***)(puVar21 + -8) = local_34" (pointer_expression "*(undefined1 ***)(puVar21 + -8)" * (cast_expression "(undefined1 ***)(puVar21 + -8)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(byte ***)(puVar21 + -0xc) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0xc) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0xc)" * (cast_expression "(byte ***)(puVar21 + -0xc)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar21 + -0x10) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -0x10) = local_b0" (pointer_expression "*(uint *)(puVar21 + -0x10)" * (cast_expression "(uint *)(puVar21 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x14) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0x14) = local_c0" (pointer_expression "*(int **)(puVar21 + -0x14)" * (cast_expression "(int **)(puVar21 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f3cd" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = FUN_000c2280();" (assignment_expression "iVar15 = FUN_000c2280()" identifier = (call_expression "FUN_000c2280()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }" if (parenthesized_expression "((char)local_34[0] != '\0')" ( (binary_expression "(char)local_34[0] != '\0'" (cast_expression "(char)local_34[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_34[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_50 = local_9c[3] + iVar15;\n            }" { (expression_statement "local_50 = local_9c[3] + iVar15;" (assignment_expression "local_50 = local_9c[3] + iVar15" identifier = (binary_expression "local_9c[3] + iVar15" (subscript_expression "local_9c[3]" identifier [ number_literal ]) + identifier)) ;) })) (expression_statement "local_b4 = 1;" (assignment_expression "local_b4 = 1" identifier = number_literal) ;) (expression_statement "puVar21 = puVar21 + -4;" (assignment_expression "puVar21 = puVar21 + -4" identifier = (binary_expression "puVar21 + -4" identifier + number_literal)) ;) }) (else_clause "else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" else (compound_statement "{\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" { (if_statement "if (local_b4 == 1) goto LAB_0004f3ac;" if (parenthesized_expression "(local_b4 == 1)" ( (binary_expression "local_b4 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004f3ac;" goto statement_identifier ;)) (if_statement "if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" if (parenthesized_expression "(local_b4 == 3)" ( (binary_expression "local_b4 == 3" identifier == number_literal) )) (compound_statement "{\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }" { (labeled_statement "LAB_0004f50a:\n              uVar11 = param_2[2];" statement_identifier : (expression_statement "uVar11 = param_2[2];" (assignment_expression "uVar11 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;)) (if_statement "if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" if (parenthesized_expression "(local_90 == (undefined4 *)0x0)" ( (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }" { (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_a4;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_a4" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f94d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f94d" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = FUN_000c62d0();" (assignment_expression "uVar13 = FUN_000c62d0()" identifier = (call_expression "FUN_000c62d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;" (assignment_expression "*(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa" (pointer_expression "*(undefined ***)(puVar21 + -0x14)" * (cast_expression "(undefined ***)(puVar21 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdfa" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f965;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f965" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_a4;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_a4" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" * (cast_expression "(undefined4 **)(puVar21 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = uVar12;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = uVar12" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x18)" * (cast_expression "(int *)(puVar21 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x1c) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x1c) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x1c)" * (cast_expression "(uint *)(puVar21 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x20) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x20) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x20)" * (cast_expression "(int *)(puVar21 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x24) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x24) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x24)" * (cast_expression "(undefined4 **)(puVar21 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x28) = 0x4f98d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x28) = 0x4f98d" (pointer_expression "*(undefined4 *)(puVar21 + -0x28)" * (cast_expression "(undefined4 *)(puVar21 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -4;" (assignment_expression "puVar20 = puVar21 + -4" identifier = (binary_expression "puVar21 + -4" identifier + number_literal)) ;) }) (else_clause "else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" else (compound_statement "{\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" { (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 ***)(puVar21 + -0x14) = local_34;" (assignment_expression "*(undefined1 ***)(puVar21 + -0x14) = local_34" (pointer_expression "*(undefined1 ***)(puVar21 + -0x14)" * (cast_expression "(undefined1 ***)(puVar21 + -0x14)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f536;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f536" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0014f9f0();" (call_expression "FUN_0014f9f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = local_34[0];" (assignment_expression "puVar6 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;" (assignment_expression "*(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4" (pointer_expression "*(undefined ***)(puVar21 + -0x18)" * (cast_expression "(undefined ***)(puVar21 + -0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cde4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1c) = 0x4f54d" (pointer_expression "*(undefined4 *)(puVar21 + -0x1c)" * (cast_expression "(undefined4 *)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = puVar6;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = puVar6" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x20) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x20) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x20)" * (cast_expression "(uint *)(puVar21 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x24) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x24) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x24)" * (cast_expression "(int *)(puVar21 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x28) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x28) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x28)" * (cast_expression "(undefined4 **)(puVar21 + -0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = 0x4f570;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = 0x4f570" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" * (cast_expression "(undefined4 *)(puVar21 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -8;" (assignment_expression "puVar20 = puVar21 + -8" identifier = (binary_expression "puVar21 + -8" identifier + number_literal)) ;) (if_statement "if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }" { (expression_statement "*(undefined1 **)(puVar21 + -0x18) = local_34[0];" (assignment_expression "*(undefined1 **)(puVar21 + -0x18) = local_34[0]" (pointer_expression "*(undefined1 **)(puVar21 + -0x18)" * (cast_expression "(undefined1 **)(puVar21 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1c) = 0x4f586;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1c) = 0x4f586" (pointer_expression "*(undefined4 *)(puVar21 + -0x1c)" * (cast_expression "(undefined4 *)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -8;" (assignment_expression "puVar20 = puVar21 + -8" identifier = (binary_expression "puVar21 + -8" identifier + number_literal)) ;) })) }))) (expression_statement "*(undefined1 **)(puVar20 + -4) = local_82;" (assignment_expression "*(undefined1 **)(puVar20 + -4) = local_82" (pointer_expression "*(undefined1 **)(puVar20 + -4)" * (cast_expression "(undefined1 **)(puVar20 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -8) = local_80;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_80" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_a4;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_a4" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f5a3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = FUN_000c5610();" (assignment_expression "iVar15 = FUN_000c5610()" identifier = (call_expression "FUN_000c5610()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }" { (expression_statement "*(int **)(puVar20 + -8) = &local_7c;" (assignment_expression "*(int **)(puVar20 + -8) = &local_7c" (pointer_expression "*(int **)(puVar20 + -8)" * (cast_expression "(int **)(puVar20 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0xc) = iVar15;" (assignment_expression "*(int *)(puVar20 + -0xc) = iVar15" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f844;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f844" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = FUN_000c24f0();" (assignment_expression "iVar15 = FUN_000c24f0()" identifier = (call_expression "FUN_000c24f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }" if (parenthesized_expression "(local_7c != 0)" ( (binary_expression "local_7c != 0" identifier != number_literal) )) (compound_statement "{\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }" { (expression_statement "*(int *)(puVar20 + -0xc) = local_7c;" (assignment_expression "*(int *)(puVar20 + -0xc) = local_7c" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff50;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff50" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_000c62d0();" (assignment_expression "uVar11 = FUN_000c62d0()" identifier = (call_expression "FUN_000c62d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;" (assignment_expression "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf" (pointer_expression "*(undefined ***)(puVar20 + -0x10)" * (cast_expression "(undefined ***)(puVar20 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdcf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff68;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff68" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff77;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff77" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082930();" (call_expression "FUN_00082930()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }" { (expression_statement "uVar11 = *(undefined4 *)(iVar15 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar15 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar15 + 4)" * (cast_expression "(undefined4 *)(iVar15 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;" (assignment_expression "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7" (pointer_expression "*(undefined ***)(puVar20 + -0x10)" * (cast_expression "(undefined ***)(puVar20 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdc7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f876;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f876" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f87f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f87f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082930();" (call_expression "FUN_00082930()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "local_b4 = 3;" (assignment_expression "local_b4 = 3" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" else (compound_statement "{\nLAB_0004f5da:\n              local_b4 = 2;\n            }" { (labeled_statement "LAB_0004f5da:\n              local_b4 = 2;" statement_identifier : (expression_statement "local_b4 = 2;" (assignment_expression "local_b4 = 2" identifier = number_literal) ;)) }))) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) }))) (if_statement "if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }" if (parenthesized_expression "(local_5c != (byte *)0x0)" ( (binary_expression "local_5c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c71c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x50110;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x50110" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = (byte *)0xffffffff;" (assignment_expression "local_5c = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }" if (parenthesized_expression "(local_4c != local_44)" ( (binary_expression "local_4c != local_44" identifier != identifier) )) (compound_statement "{\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }" { (expression_statement "*(byte **)(puVar21 + -0x10) = local_4c;" (assignment_expression "*(byte **)(puVar21 + -0x10) = local_4c" (pointer_expression "*(byte **)(puVar21 + -0x10)" * (cast_expression "(byte **)(puVar21 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f41b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f41b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_9c = &local_5c;" (assignment_expression "local_9c = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" else (compound_statement "{\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" { (if_statement "if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;" if (parenthesized_expression "((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))" ( (binary_expression "(param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (parenthesized_expression "(param_11 != (int *)0x0)" ( (binary_expression "param_11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" ( (comma_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0" (assignment_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4)" identifier = (pointer_expression "*(undefined4 **)(*param_11 + local_a8 * 4)" * (cast_expression "(undefined4 **)(*param_11 + local_a8 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_11 + local_a8 * 4)" ( (binary_expression "*param_11 + local_a8 * 4" (pointer_expression "*param_11" * identifier) + (binary_expression "local_a8 * 4" identifier * number_literal)) ))))) , (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004e238;" goto statement_identifier ;)) (if_statement "if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }" if (parenthesized_expression "(local_a4 < (undefined4 *)local_c0[0x2c])" ( (binary_expression "local_a4 < (undefined4 *)local_c0[0x2c]" identifier < (cast_expression "(undefined4 *)local_c0[0x2c]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0x2c]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }" { (labeled_statement "LAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;" statement_identifier : (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c70f" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x17f;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x17f" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_00050131;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_00050131" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_00050131" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = (int)local_a4 - local_c0[0x2c];" (assignment_expression "uVar10 = (int)local_a4 - local_c0[0x2c]" identifier = (binary_expression "(int)local_a4 - local_c0[0x2c]" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_90 = (undefined4 *)local_c0[0x30];" (assignment_expression "local_90 = (undefined4 *)local_c0[0x30]" identifier = (cast_expression "(undefined4 *)local_c0[0x30]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0x30]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10)" ( (binary_expression "(uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10" (call_expression "(uint)((int)local_90 - local_c0[0x2f] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - local_c0[0x2f] >> 2)" ( (binary_expression "(int)local_90 - local_c0[0x2f] >> 2" (binary_expression "(int)local_90 - local_c0[0x2f]" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0x2f]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c6c2" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x5018a;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x5018a" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);" (assignment_expression "local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" identifier = (pointer_expression "*(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" * (cast_expression "(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c0[0x2f] + uVar10 * 4)" ( (binary_expression "local_c0[0x2f] + uVar10 * 4" (subscript_expression "local_c0[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_90 == (undefined4 *)0x0) goto LAB_00050110;" if (parenthesized_expression "(local_90 == (undefined4 *)0x0)" ( (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050110;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e238;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" * (cast_expression "(undefined4 **)(puVar21 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = *param_2;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = *param_2" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (pointer_expression "*param_2" * identifier)) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f795;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f795" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_90 = (undefined4 *)FUN_0014ec30();" (assignment_expression "local_90 = (undefined4 *)FUN_0014ec30()" identifier = (cast_expression "(undefined4 *)FUN_0014ec30()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014ec30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar14 = (byte *)local_90[4];" (assignment_expression "pbVar14 = (byte *)local_90[4]" identifier = (cast_expression "(byte *)local_90[4]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[4]" identifier [ number_literal ]))) ;) (expression_statement "pbVar17 = pbVar14 + -1;" (assignment_expression "pbVar17 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) (if_statement "if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }" if (parenthesized_expression "((byte *)0xfffffffd < pbVar17)" ( (binary_expression "(byte *)0xfffffffd < pbVar17" (cast_expression "(byte *)0xfffffffd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }" { (if_statement "if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }" if (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c71c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_0004f7d9" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0004e24d;" goto statement_identifier ;) })) (if_statement "if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe))" ( (binary_expression "(local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)" (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_6c != (byte *)0xfffffffe)" ( (binary_expression "local_6c != (byte *)0xfffffffe" identifier != (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c715" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x70c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x70c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x500a1;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x500a1" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;" statement_identifier : (if_statement "if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;" if (parenthesized_expression "(pbVar17 == (byte *)0xfffffffd)" ( (binary_expression "pbVar17 == (byte *)0xfffffffd" identifier == (cast_expression "(byte *)0xfffffffd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050198;" goto statement_identifier ;))) (labeled_statement "LAB_0004e254:\n          local_6c = pbVar14;" statement_identifier : (expression_statement "local_6c = pbVar14;" (assignment_expression "local_6c = pbVar14" identifier = identifier) ;)) (expression_statement "local_60 = local_90[0xc];" (assignment_expression "local_60 = local_90[0xc]" identifier = (subscript_expression "local_90[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" if (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) == 6)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) == 6" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_64 = local_64 | 0x20000000;\n          }" { (expression_statement "local_64 = local_64 | 0x20000000;" (assignment_expression "local_64 = local_64 | 0x20000000" identifier = (binary_expression "local_64 | 0x20000000" identifier | number_literal)) ;) }) (else_clause "else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" else (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" if (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) == 10)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) == 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_64 = local_64 | 0x40000000;\n          }" { (expression_statement "local_64 = local_64 | 0x40000000;" (assignment_expression "local_64 = local_64 | 0x40000000" identifier = (binary_expression "local_64 | 0x40000000" identifier | number_literal)) ;) })))) (if_statement "if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" if (parenthesized_expression "((char)*(byte *)((int)local_90 + 0x2b) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_90 + 0x2b) < '\0'" (cast_expression "(char)*(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }" { (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" { (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }" if (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }" { (labeled_statement "LAB_0004f318:\n                local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (goto_statement "goto LAB_0004f331;" goto statement_identifier ;) })) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" else (compound_statement "{\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" { (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004f318;" goto statement_identifier ;)) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" else (compound_statement "{\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" { (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_0004e2a0:\n          local_ac = &local_6c;" statement_identifier : (expression_statement "local_ac = &local_6c;" (assignment_expression "local_ac = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (expression_statement "local_5c = (byte *)0x0;" (assignment_expression "local_5c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_54 = 0x80000000;" (assignment_expression "local_54 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_c4 = &local_5c;" (assignment_expression "local_c4 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_b0 = uVar10 & 0xff;" (assignment_expression "local_b0 = uVar10 & 0xff" identifier = (binary_expression "uVar10 & 0xff" identifier & number_literal)) ;) (expression_statement "local_c8 = param_9 + local_b8;" (assignment_expression "local_c8 = param_9 + local_b8" identifier = (binary_expression "param_9 + local_b8" identifier + identifier)) ;) (if_statement "if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" if (parenthesized_expression "(((int)local_b8 < 0) || (param_10 <= local_b8))" ( (binary_expression "((int)local_b8 < 0) || (param_10 <= local_b8)" (parenthesized_expression "((int)local_b8 < 0)" ( (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(param_10 <= local_b8)" ( (binary_expression "param_10 <= local_b8" identifier <= identifier) ))) )) (compound_statement "{\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }" { (expression_statement "local_a4 = (undefined4 *)0x0;" (assignment_expression "local_a4 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (if_statement "if (local_74 != '\0') goto LAB_0004f130;" if (parenthesized_expression "(local_74 != '\0')" ( (binary_expression "local_74 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f130;" goto statement_identifier ;)) (labeled_statement "LAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;" statement_identifier : (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a7f" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f1d7" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x14)" * (cast_expression "(int *)(puVar21 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x18) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x18) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x18)" * (cast_expression "(uint *)(puVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4f1f4" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" else (compound_statement "{\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" { (expression_statement "local_a4 = (undefined4 *)(local_b8 + param_8);" (assignment_expression "local_a4 = (undefined4 *)(local_b8 + param_8)" identifier = (cast_expression "(undefined4 *)(local_b8 + param_8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b8 + param_8)" ( (binary_expression "local_b8 + param_8" identifier + identifier) )))) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (if_statement "if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" if (parenthesized_expression "(local_74 == '\0')" ( (binary_expression "local_74 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }" { (labeled_statement "LAB_0004e30b:\n            ppuVar19 = local_94;" statement_identifier : (expression_statement "ppuVar19 = local_94;" (assignment_expression "ppuVar19 = local_94" identifier = identifier) ;)) (if_statement "if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;" if (parenthesized_expression "(local_a4 == (undefined4 *)0x0)" ( (binary_expression "local_a4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f1c0;" goto statement_identifier ;)) (expression_statement "local_4c = (byte *)0x0;" (assignment_expression "local_4c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = 0xffffffff;" (assignment_expression "local_48 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_bc = (int *)param_2[2];" (assignment_expression "local_bc = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[1] = 0;" (assignment_expression "local_44[1] = 0" (subscript_expression "local_44[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[2] = 0;" (assignment_expression "local_44[2] = 0" (subscript_expression "local_44[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[3] = 0x80;" (assignment_expression "local_44[3] = 0x80" (subscript_expression "local_44[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" if (parenthesized_expression "(local_90 == (undefined4 *)0x0)" ( (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }" { (if_statement "if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }" if (parenthesized_expression "((*(byte *)((int)local_9c + 0xb) & 0x40) != 0)" ( (binary_expression "(*(byte *)((int)local_9c + 0xb) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)local_9c + 0xb) & 0x40)" ( (binary_expression "*(byte *)((int)local_9c + 0xb) & 0x40" (pointer_expression "*(byte *)((int)local_9c + 0xb)" * (cast_expression "(byte *)((int)local_9c + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0xb)" ( (binary_expression "(int)local_9c + 0xb" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }" { (expression_statement "uVar10 = local_78[1];" (assignment_expression "uVar10 = local_78[1]" identifier = (subscript_expression "local_78[1]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar10 >> 8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar10 >> 8" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (binary_expression "uVar10 >> 8" identifier >> number_literal)) ;) (expression_statement "*(int **)(puVar21 + -0x10) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0x10) = local_bc" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f227;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f227" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_000c21d0();" (assignment_expression "cVar7 = FUN_000c21d0()" identifier = (call_expression "FUN_000c21d0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }" { (expression_statement "piVar5 = *(int **)(param_1 + 0x18);" (assignment_expression "piVar5 = *(int **)(param_1 + 0x18)" identifier = (pointer_expression "*(int **)(param_1 + 0x18)" * (cast_expression "(int **)(param_1 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_a0 = &local_4c;\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }" { (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x50363;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x50363" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000494c0();" (call_expression "FUN_000494c0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;" statement_identifier : (expression_statement "*(undefined ***)(puVar21 + -4) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar21 + -4) = ppuVar19" (pointer_expression "*(undefined ***)(puVar21 + -4)" * (cast_expression "(undefined ***)(puVar21 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c624" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c624" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3ca3" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) comment (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_0005038b;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_0005038b" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_0005038b" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 1) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 1)" ( (binary_expression "*(byte *)(piVar5 + 7) & 1" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00050363;" goto statement_identifier ;)) (expression_statement "local_9c = (byte **)piVar5[1];" (assignment_expression "local_9c = (byte **)piVar5[1]" identifier = (cast_expression "(byte **)piVar5[1]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "local_98 = piVar5[2];" (assignment_expression "local_98 = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar5[0x10];" (assignment_expression "iVar15 = piVar5[0x10]" identifier = (subscript_expression "piVar5[0x10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = *piVar5;" (assignment_expression "iVar16 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*(int **)(puVar21 + -0x10) = piVar5;" (assignment_expression "*(int **)(puVar21 + -0x10) = piVar5" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar16 + 100);" (assignment_expression "pcVar2 = *(code **)(iVar16 + 100)" identifier = (pointer_expression "*(code **)(iVar16 + 100)" * (cast_expression "(code **)(iVar16 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 100)" ( (binary_expression "iVar16 + 100" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f274;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f274" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar16 = (*pcVar2)();" (assignment_expression "iVar16 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar18 = (iVar15 + 1) * iVar16;" (assignment_expression "uVar18 = (iVar15 + 1) * iVar16" identifier = (binary_expression "(iVar15 + 1) * iVar16" (parenthesized_expression "(iVar15 + 1)" ( (binary_expression "iVar15 + 1" identifier + number_literal) )) * identifier)) ;) (expression_statement "bVar23 = CARRY4(uVar18,(uint)local_9c);" (assignment_expression "bVar23 = CARRY4(uVar18,(uint)local_9c)" identifier = (call_expression "CARRY4(uVar18,(uint)local_9c)" identifier (argument_list "(uVar18,(uint)local_9c)" ( identifier , (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_9c = (byte **)(uVar18 + (int)local_9c);" (assignment_expression "local_9c = (byte **)(uVar18 + (int)local_9c)" identifier = (cast_expression "(byte **)(uVar18 + (int)local_9c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar18 + (int)local_9c)" ( (binary_expression "uVar18 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_98 = local_98 + (uint)bVar23;" (assignment_expression "local_98 = local_98 + (uint)bVar23" identifier = (binary_expression "local_98 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar15 = *local_bc;" (assignment_expression "iVar15 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar10 >> 8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar10 >> 8" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (binary_expression "uVar10 >> 8" identifier >> number_literal)) ;) (expression_statement "*(int **)(puVar21 + -0x10) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0x10) = local_bc" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar15 + 0xa8);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0xa8)" identifier = (pointer_expression "*(code **)(iVar15 + 0xa8)" * (cast_expression "(code **)(iVar15 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xa8)" ( (binary_expression "iVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f2ae" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_40 = (*pcVar2)();" (assignment_expression "local_40 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "local_40 = local_40 + (int)local_9c;" (assignment_expression "local_40 = local_40 + (int)local_9c" identifier = (binary_expression "local_40 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) })) })) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (if_statement "if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }" if (parenthesized_expression "(local_b0 < 0xfc)" ( (binary_expression "local_b0 < 0xfc" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))" ( (pointer_expression "*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" * (cast_expression "(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[local_b0 - 0x3cb99] + (int)local_94)" ( (binary_expression "local_94[local_b0 - 0x3cb99] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cb99]" identifier [ (binary_expression "local_b0 - 0x3cb99" identifier - number_literal) ]) + (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0004e736:\n              local_a0 = &local_4c;" statement_identifier : (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;)) (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3ceb6" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e847;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e847" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -0xc) = local_b0" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *local_78;" (assignment_expression "uVar10 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar21 + -0x18) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -0x18) = uVar10" (pointer_expression "*(uint *)(puVar21 + -0x18)" * (cast_expression "(uint *)(puVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4e867;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4e867" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" else (compound_statement "{\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" { (if_statement "if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }" if (parenthesized_expression "(((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1))" ( (binary_expression "((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)" (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) != 10)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) != 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(local_b0 != 1)" ( (binary_expression "local_b0 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = local_b0 - 1;" (assignment_expression "uVar10 = local_b0 - 1" identifier = (binary_expression "local_b0 - 1" identifier - number_literal)) ;) (if_statement "if (uVar10 < 0x2b) goto LAB_0004f078;" if (parenthesized_expression "(uVar10 < 0x2b)" ( (binary_expression "uVar10 < 0x2b" identifier < number_literal) )) (goto_statement "goto LAB_0004f078;" goto statement_identifier ;)) (labeled_statement "LAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" statement_identifier : (if_statement "if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" if (parenthesized_expression "(local_90[6] != -1)" ( (binary_expression "local_90[6] != -1" (subscript_expression "local_90[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" { (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }" if (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) != 10)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) != 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }" { (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar18;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar18" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e3c4" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055ca0();" (assignment_expression "cVar7 = FUN_00055ca0()" identifier = (call_expression "FUN_00055ca0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') goto LAB_0004e466;" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }" if (parenthesized_expression "(((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0))" ( (binary_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)" (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(local_90[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(local_90[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(local_90[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(local_90[2] + 0x2c) & 1" (pointer_expression "*(byte *)(local_90[2] + 0x2c)" * (cast_expression "(byte *)(local_90[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90[2] + 0x2c)" ( (binary_expression "local_90[2] + 0x2c" (subscript_expression "local_90[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }" { (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (if_statement "if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }" if (parenthesized_expression "(*(int *)(*ppuVar19 + 8) == 0)" ( (binary_expression "*(int *)(*ppuVar19 + 8) == 0" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501dc;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501dc" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }" if (parenthesized_expression "(*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*ppuVar19 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*ppuVar19 + 8) + 0x1a25" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }" { (labeled_statement "LAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" statement_identifier : (if_statement "if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" if (parenthesized_expression "((uVar18 & 8) != 0)" ( (binary_expression "(uVar18 & 8) != 0" (parenthesized_expression "(uVar18 & 8)" ( (binary_expression "uVar18 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" { (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }" { (if_statement "if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }" if (parenthesized_expression "((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }" { (labeled_statement "LAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" statement_identifier : (if_statement "if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" if (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0))" ( (binary_expression "(*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) && (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" { (if_statement "if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }" if (parenthesized_expression "(*(int *)(*ppuVar19 + 8) == 0)" ( (binary_expression "*(int *)(*ppuVar19 + 8) == 0" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    /* WARNING: Subroutine does not return */\n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }" { (expression_statement "*(undefined ***)(puVar21 + -4) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar21 + -4) = ppuVar19" (pointer_expression "*(undefined ***)(puVar21 + -4)" * (cast_expression "(undefined ***)(puVar21 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) comment (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_0005044d" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;" if (parenthesized_expression "(*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')" ( (binary_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*ppuVar19 + 8) + 0x49b1)" ( (binary_expression "*(int *)(*ppuVar19 + 8) + 0x49b1" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0004eb80;" goto statement_identifier ;) })) }) (else_clause "else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" else (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ebf4;" goto statement_identifier ;)))) }))) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }" { (if_statement "if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }" if (parenthesized_expression "((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0))" ( (binary_expression "(local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)" (parenthesized_expression "(local_90[3] != 0)" ( (binary_expression "local_90[3] != 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }" { (labeled_statement "LAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;" statement_identifier : (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e449;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e449" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055b70();" (assignment_expression "cVar7 = FUN_00055b70()" identifier = (call_expression "FUN_00055b70()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 == '\0') goto LAB_0004e454;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e454;" goto statement_identifier ;)) })) }) (else_clause "else if (bVar8 != 4) goto LAB_0004e432;" else (if_statement "if (bVar8 != 4) goto LAB_0004e432;" if (parenthesized_expression "(bVar8 != 4)" ( (binary_expression "bVar8 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004e432;" goto statement_identifier ;)))) })) })) (labeled_statement "LAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" statement_identifier : (if_statement "if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) == 0)" ( (binary_expression "*(int *)(param_1 + 0x18) == 0" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    local_a0 = &local_4c;\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" { (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x50198;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x50198" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000494c0();" (call_expression "FUN_000494c0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00050198:\n                    ppuVar19 = local_94;" statement_identifier : (expression_statement "ppuVar19 = local_94;" (assignment_expression "ppuVar19 = local_94" identifier = identifier) ;)) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c715" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x70d;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x70d" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)ppuVar19 + -0xf3c7b" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501b9;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501b9" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x4eba2;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x4eba2" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "local_40 = FUN_0004bfa0();" (assignment_expression "local_40 = FUN_0004bfa0()" identifier = (call_expression "FUN_0004bfa0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) }))) (labeled_statement "LAB_0004e466:\n                local_a0 = &local_4c;" statement_identifier : (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;)) (if_statement "if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }" if (parenthesized_expression "(local_b0 < 0xfc)" ( (binary_expression "local_b0 < 0xfc" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }" { comment comment (expression_statement "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))" ( (pointer_expression "*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" * (cast_expression "(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[local_b0 - 0x3cc95] + (int)local_94)" ( (binary_expression "local_94[local_b0 - 0x3cc95] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cc95]" identifier [ (binary_expression "local_b0 - 0x3cc95" identifier - number_literal) ]) + (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0004e736;" goto statement_identifier ;) })) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea09;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea09" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055ca0();" (assignment_expression "cVar7 = FUN_00055ca0()" identifier = (call_expression "FUN_00055ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_90;" (assignment_expression "puVar4 = local_90" identifier = identifier) ;) (if_statement "if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }" { (labeled_statement "LAB_0004f070:\n                uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));" statement_identifier : (expression_statement "uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));" (assignment_expression "uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040))" identifier = (binary_expression "(uint)*(char *)((int)local_94 + (uVar10 - 0xf2040))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)((int)local_94 + (uVar10 - 0xf2040))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + (uVar10 - 0xf2040))" ( (binary_expression "(int)local_94 + (uVar10 - 0xf2040)" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar10 - 0xf2040)" ( (binary_expression "uVar10 - 0xf2040" identifier - number_literal) ))) ))))) ;)) (goto_statement "goto LAB_0004e381;" goto statement_identifier ;) })) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea2e" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055ed0();" (assignment_expression "cVar7 = FUN_00055ed0()" identifier = (call_expression "FUN_00055ed0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 == '\0') goto LAB_0004f070;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }" if (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)puVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)puVar4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar4 + 0x2a)" * (cast_expression "(byte *)((int)puVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2a)" ( (binary_expression "(int)puVar4 + 0x2a" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }" { (if_statement "if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;" if (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2a) & 7) != 4)" ( (binary_expression "(*(byte *)((int)puVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)puVar4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar4 + 0x2a)" * (cast_expression "(byte *)((int)puVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2a)" ( (binary_expression "(int)puVar4 + 0x2a" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ea6a;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;) })) (if_statement "if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;" if (parenthesized_expression "(((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(puVar4[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar4[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar4[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(puVar4[2] + 0x2c) & 1" (pointer_expression "*(byte *)(puVar4[2] + 0x2c)" * (cast_expression "(byte *)(puVar4[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[2] + 0x2c)" ( (binary_expression "puVar4[2] + 0x2c" (subscript_expression "puVar4[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)))" ( (parenthesized_expression "(puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))" ( (binary_expression "puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)" (binary_expression "puVar4[3] == 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)puVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)puVar4 + 0x2b)" * (cast_expression "(byte *)((int)puVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2b)" ( (binary_expression "(int)puVar4 + 0x2b" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (labeled_statement "LAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;" statement_identifier : (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea81;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea81" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055b70();" (assignment_expression "cVar7 = FUN_00055b70()" identifier = (call_expression "FUN_00055b70()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') goto LAB_0004f070;" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = param_6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = param_6" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4eab3;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4eab3" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_0004c1a0();" (assignment_expression "cVar7 = FUN_0004c1a0()" identifier = (call_expression "FUN_0004c1a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_a4;" (assignment_expression "puVar4 = local_a4" identifier = identifier) ;) (if_statement "if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }" { (expression_statement "*(undefined4 *)(puVar21 + -8) = *local_a4;" (assignment_expression "*(undefined4 *)(puVar21 + -8) = *local_a4" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (pointer_expression "*local_a4" * identifier)) ;) (expression_statement "*(int **)(puVar21 + -0xc) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_bc" (pointer_expression "*(int **)(puVar21 + -0xc)" * (cast_expression "(int **)(puVar21 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_9c;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_9c" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4eada;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4eada" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_00056220();" (assignment_expression "uVar11 = FUN_00056220()" identifier = (call_expression "FUN_00056220()" identifier (argument_list "()" ( )))) ;) (expression_statement "*puVar4 = uVar11;" (assignment_expression "*puVar4 = uVar11" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) }))) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e4c6" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }" if (parenthesized_expression "(local_90 != (undefined4 *)0x0)" ( (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }" { (expression_statement "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);" (assignment_expression "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a)" identifier = (binary_expression "(uint)*(byte *)((int)local_90 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" { (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" if (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }" { (labeled_statement "LAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" statement_identifier : (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) ))))) ;)) (if_statement "if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }" if (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     )" ( (binary_expression "(*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) && (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }" { (expression_statement "iVar15 = *(int *)(local_94[0xbc] + 8);" (assignment_expression "iVar15 = *(int *)(local_94[0xbc] + 8)" identifier = (pointer_expression "*(int *)(local_94[0xbc] + 8)" * (cast_expression "(int *)(local_94[0xbc] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[0xbc] + 8)" ( (binary_expression "local_94[0xbc] + 8" (subscript_expression "local_94[0xbc]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }" { (expression_statement "*(uint *)(puVar21 + -4) = uVar18;" (assignment_expression "*(uint *)(puVar21 + -4) = uVar18" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x5029b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x5029b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }" if (parenthesized_expression "(*(char *)(iVar15 + 0x49b1) == '\0')" ( (binary_expression "*(char *)(iVar15 + 0x49b1) == '\0'" (pointer_expression "*(char *)(iVar15 + 0x49b1)" * (cast_expression "(char *)(iVar15 + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x49b1)" ( (binary_expression "iVar15 + 0x49b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }" { (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (if_statement "if (-1 < (char)bVar8) goto LAB_0004ed70;" if (parenthesized_expression "(-1 < (char)bVar8)" ( (binary_expression "-1 < (char)bVar8" number_literal < (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0004ed70;" goto statement_identifier ;)) (if_statement "if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }" if (parenthesized_expression "((char)uVar10 == '\0')" ( (binary_expression "(char)uVar10 == '\0'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }" { (expression_statement "ppuVar19 = local_94 + -0xba878;" (assignment_expression "ppuVar19 = local_94 + -0xba878" identifier = (binary_expression "local_94 + -0xba878" identifier + number_literal)) ;) (goto_statement "goto LAB_0004ed40;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);" statement_identifier : (expression_statement "bVar1 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar1 = *(byte *)((int)local_90 + 0x29)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1)" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar1)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,bVar1)" identifier (argument_list "(local_9c._1_3_,bVar1)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar9 = bVar1 & 3;" (assignment_expression "bVar9 = bVar1 & 3" identifier = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }" if (parenthesized_expression "((bVar1 & 3) != 0)" ( (binary_expression "(bVar1 & 3) != 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }" { (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) (goto_statement "goto LAB_0004eee0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" statement_identifier : (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;)) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (labeled_statement "LAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;" statement_identifier : (if_statement "if (bVar9 == 0) goto LAB_0004efaf;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;))) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" identifier (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "uVar10 = (uint)bVar8;" (assignment_expression "uVar10 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar8 != 0) goto LAB_0004eee0;" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004eee0;" goto statement_identifier ;)) }) (else_clause "else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" else (compound_statement "{\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" { (expression_statement "ppuVar19 = local_94 + -0xba878;" (assignment_expression "ppuVar19 = local_94 + -0xba878" identifier = (binary_expression "local_94 + -0xba878" identifier + number_literal)) ;) (expression_statement "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14)" identifier = (pointer_expression "*(undefined ***)(*(int *)local_90[2] + 0x14)" * (cast_expression "(undefined ***)(*(int *)local_90[2] + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*(int *)local_90[2] + 0x14)" ( (binary_expression "*(int *)local_90[2] + 0x14" (pointer_expression "*(int *)local_90[2]" * (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }" if (parenthesized_expression "(ppuVar3 != ppuVar19)" ( (binary_expression "ppuVar3 != ppuVar19" identifier != identifier) )) (compound_statement "{\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }" { (expression_statement "*(int **)(puVar21 + -0x10) = (int *)local_90[2];" (assignment_expression "*(int **)(puVar21 + -0x10) = (int *)local_90[2]" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f896;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f896" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = (*(code *)ppuVar3)();" (assignment_expression "iVar15 = (*(code *)ppuVar3)()" identifier = (call_expression "(*(code *)ppuVar3)()" (parenthesized_expression "(*(code *)ppuVar3)" ( (pointer_expression "*(code *)ppuVar3" * (cast_expression "(code *)ppuVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) goto LAB_0004ef40;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004ef40;" goto statement_identifier ;)) (expression_statement "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);" (assignment_expression "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a)" identifier = (binary_expression "(uint)*(byte *)((int)local_90 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }" { (if_statement "if ((char)uVar10 == '\x04') goto LAB_0004ecc9;" if (parenthesized_expression "((char)uVar10 == '\x04')" ( (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (-1 < (char)bVar8) goto LAB_0004f8c5;" if (parenthesized_expression "(-1 < (char)bVar8)" ( (binary_expression "-1 < (char)bVar8" number_literal < (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0004f8c5;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f8f7;" goto statement_identifier ;) })) (if_statement "if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" if (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }" { (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;" if (parenthesized_expression "((bVar8 & 0x20) != 0)" ( (binary_expression "(bVar8 & 0x20) != 0" (parenthesized_expression "(bVar8 & 0x20)" ( (binary_expression "bVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) }) (else_clause "else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" else (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" { (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" if (parenthesized_expression "((char)bVar8 < '\0')" ( (binary_expression "(char)bVar8 < '\0'" (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }" { (labeled_statement "LAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" statement_identifier : (expression_statement "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14)" identifier = (pointer_expression "*(undefined ***)(*(int *)local_90[2] + 0x14)" * (cast_expression "(undefined ***)(*(int *)local_90[2] + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*(int *)local_90[2] + 0x14)" ( (binary_expression "*(int *)local_90[2] + 0x14" (pointer_expression "*(int *)local_90[2]" * (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) + number_literal) ))))) ;)) (if_statement "if (ppuVar3 == ppuVar19) goto LAB_0004e51b;" if (parenthesized_expression "(ppuVar3 == ppuVar19)" ( (binary_expression "ppuVar3 == ppuVar19" identifier == identifier) )) (goto_statement "goto LAB_0004e51b;" goto statement_identifier ;)) (expression_statement "*(int **)(puVar21 + -0x10) = (int *)local_90[2];" (assignment_expression "*(int **)(puVar21 + -0x10) = (int *)local_90[2]" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ed5c" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = (*(code *)ppuVar3)();" (assignment_expression "iVar15 = (*(code *)ppuVar3)()" identifier = (call_expression "(*(code *)ppuVar3)()" (parenthesized_expression "(*(code *)ppuVar3)" ( (pointer_expression "*(code *)ppuVar3" * (cast_expression "(code *)ppuVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "ppuVar19 = local_e4;" (assignment_expression "ppuVar19 = local_e4" identifier = identifier) ;) (if_statement "if (iVar15 != 0) goto LAB_0004ed70;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ed70;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" else (compound_statement "{\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" { (labeled_statement "LAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;" statement_identifier : (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;)) (labeled_statement "LAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);" statement_identifier : (expression_statement "piVar5 = *(int **)(*ppuVar19 + 0xc);" (assignment_expression "piVar5 = *(int **)(*ppuVar19 + 0xc)" identifier = (pointer_expression "*(int **)(*ppuVar19 + 0xc)" * (cast_expression "(int **)(*ppuVar19 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*ppuVar19 + 0xc)" ( (binary_expression "*ppuVar19 + 0xc" (pointer_expression "*ppuVar19" * identifier) + number_literal) ))))) ;)) (if_statement "if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c759" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c759" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x69;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x69" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501fa;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501fa" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar15 = *piVar5;" (assignment_expression "iVar15 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" * (cast_expression "(undefined4 **)(puVar21 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x10) = piVar5;" (assignment_expression "*(int **)(puVar21 + -0x10) = piVar5" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar15 + 0x1c);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0x1c)" identifier = (pointer_expression "*(code **)(iVar15 + 0x1c)" * (cast_expression "(code **)(iVar15 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ed8c" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar2)();" (assignment_expression "cVar7 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_90;" (assignment_expression "puVar4 = local_90" identifier = identifier) ;) (if_statement "if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }" { (expression_statement "iVar15 = *(int *)(*ppuVar19 + 8);" (assignment_expression "iVar15 = *(int *)(*ppuVar19 + 8)" identifier = (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_00050218" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_00050218" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pbVar17 = *(byte **)(iVar15 + 0x42e4);" (assignment_expression "pbVar17 = *(byte **)(iVar15 + 0x42e4)" identifier = (pointer_expression "*(byte **)(iVar15 + 0x42e4)" * (cast_expression "(byte **)(iVar15 + 0x42e4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x42e4)" ( (binary_expression "iVar15 + 0x42e4" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar25 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }" { (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (labeled_statement "LAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" statement_identifier : (if_statement "if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" if (parenthesized_expression "((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0'))))" ( (binary_expression "(bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))" (parenthesized_expression "(bVar9 == 2)" ( (binary_expression "bVar9 == 2" identifier == number_literal) )) || (parenthesized_expression "((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))" ( (parenthesized_expression "(*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0'))" ( (binary_expression "*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')" (binary_expression "*(char *)(iVar15 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar15 + 0x1a25)" * (cast_expression "(char *)(iVar15 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1a25)" ( (binary_expression "iVar15 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(char *)(iVar15 + 0x4eb5) != '\0')" ( (binary_expression "*(char *)(iVar15 + 0x4eb5) != '\0'" (pointer_expression "*(char *)(iVar15 + 0x4eb5)" * (cast_expression "(char *)(iVar15 + 0x4eb5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x4eb5)" ( (binary_expression "iVar15 + 0x4eb5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" { (labeled_statement "LAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;" statement_identifier : (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;)) (expression_statement "*(uint *)(puVar21 + -0x14) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x14) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x14)" * (cast_expression "(uint *)(puVar21 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x18) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x18) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x18)" * (cast_expression "(int *)(puVar21 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x1c) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x1c) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x1c)" * (cast_expression "(undefined4 **)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4ee8e" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000833b0();" (call_expression "FUN_000833b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar8 = *(byte *)((int)puVar4 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)puVar4 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)puVar4 + 0x2b)" * (cast_expression "(byte *)((int)puVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2b)" ( (binary_expression "(int)puVar4 + 0x2b" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) }))) }) (else_clause "else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" else (compound_statement "{\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" { (expression_statement "iVar16 = 0xb;" (assignment_expression "iVar16 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)((int)local_94 + -0xf8fa6);" (assignment_expression "pbVar22 = (byte *)((int)local_94 + -0xf8fa6)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8fa6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8fa6)" ( (binary_expression "(int)local_94 + -0xf8fa6" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);" do (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar14 < *pbVar22;" (assignment_expression "bVar23 = *pbVar14 < *pbVar22" identifier = (binary_expression "*pbVar14 < *pbVar22" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar25 = *pbVar14 == *pbVar22;" (assignment_expression "bVar25 = *pbVar14 == *pbVar22" identifier = (binary_expression "*pbVar14 == *pbVar22" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) goto LAB_0004eea0;" if (parenthesized_expression "(bVar23)" ( identifier )) (goto_statement "goto LAB_0004eea0;" goto statement_identifier ;)) (expression_statement "iVar16 = 0xb;" (assignment_expression "iVar16 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)((int)local_94 + -0xf8f9b);" (assignment_expression "pbVar22 = (byte *)((int)local_94 + -0xf8f9b)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8f9b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8f9b)" ( (binary_expression "(int)local_94 + -0xf8f9b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);" do (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar14 < *pbVar22;" (assignment_expression "bVar24 = *pbVar14 < *pbVar22" identifier = (binary_expression "*pbVar14 < *pbVar22" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar23 = *pbVar14 == *pbVar22;" (assignment_expression "bVar23 = *pbVar14 == *pbVar22" identifier = (binary_expression "*pbVar14 == *pbVar22" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) goto LAB_0004ee67;" if (parenthesized_expression "(bVar23)" ( identifier )) (goto_statement "goto LAB_0004ee67;" goto statement_identifier ;)) (expression_statement "iVar16 = 0x17;" (assignment_expression "iVar16 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3e3e4;" (assignment_expression "ppuVar19 = local_94 + -0x3e3e4" identifier = (binary_expression "local_94 + -0x3e3e4" identifier + number_literal)) ;) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);" do (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar14 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar14 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar14 < *(byte *)ppuVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar14 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar14 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar14 == *(byte *)ppuVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }" if (parenthesized_expression "((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23))" ( (binary_expression "(!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)" (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) || (parenthesized_expression "(bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)" ( (comma_expression "bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23" (assignment_expression "bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0" identifier = (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 1) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 1)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 1" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal)) , (unary_expression "!bVar23" ! identifier)) ))) )) (compound_statement "{\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }" { (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "iVar16 = 0x16;" (assignment_expression "iVar16 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf8f79);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf8f79)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8f79)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8f79)" ( (binary_expression "(int)local_94 + -0xf8f79" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);" do (compound_statement "{\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;" if (parenthesized_expression "(((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0'))" ( (binary_expression "((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')" (parenthesized_expression "((!bVar25 && !bVar23) != bVar25)" ( (binary_expression "(!bVar25 && !bVar23) != bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) || (parenthesized_expression "(*(char *)((int)local_90 + 0x2a) < '\0')" ( (binary_expression "*(char *)((int)local_90 + 0x2a) < '\0'" (pointer_expression "*(char *)((int)local_90 + 0x2a)" * (cast_expression "(char *)((int)local_90 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0004ee51;" goto statement_identifier ;)) })) }))) (goto_statement "goto LAB_0004eeb3;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" statement_identifier : (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;)) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (goto_statement "goto LAB_0004eeb3;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);" statement_identifier : (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x29)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8)" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,bVar8)" identifier (argument_list "(local_9c._1_3_,bVar8)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar9 = bVar8 & 3;" (assignment_expression "bVar9 = bVar8 & 3" identifier = (binary_expression "bVar8 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar8 & 3) == 0) goto LAB_0004e534;" if (parenthesized_expression "((bVar8 & 3) == 0)" ( (binary_expression "(bVar8 & 3) == 0" (parenthesized_expression "(bVar8 & 3)" ( (binary_expression "bVar8 & 3" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e534;" goto statement_identifier ;)) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) }))) (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }" if (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }" { (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) ))))) ;) (if_statement "if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;" if (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     )" ( (binary_expression "(*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 == 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 == 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) == number_literal) )) || (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) != 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0004ec9c;" goto statement_identifier ;)) (labeled_statement "LAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" statement_identifier : (if_statement "if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" if (parenthesized_expression "(*(int *)(*local_e0 + 8) == 0)" ( (binary_expression "*(int *)(*local_e0 + 8) == 0" (pointer_expression "*(int *)(*local_e0 + 8)" * (cast_expression "(int *)(*local_e0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_e0 + 8)" ( (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" { (expression_statement "*(undefined ***)(puVar21 + -4) = local_e0;" (assignment_expression "*(undefined ***)(puVar21 + -4) = local_e0" (pointer_expression "*(undefined ***)(puVar21 + -4)" * (cast_expression "(undefined ***)(puVar21 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_000500bd;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_000500bd" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000500bd" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }" if (parenthesized_expression "(*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_e0 + 8) + 0x49b1)" ( (binary_expression "*(int *)(*local_e0 + 8) + 0x49b1" (pointer_expression "*(int *)(*local_e0 + 8)" * (cast_expression "(int *)(*local_e0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_e0 + 8)" ( (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }" { (if_statement "if ((char)uVar10 != '\0') goto LAB_0004efaf;" if (parenthesized_expression "((char)uVar10 != '\0')" ( (binary_expression "(char)uVar10 != '\0'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ec9c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" statement_identifier : (if_statement "if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" if (parenthesized_expression "(bVar9 == 2)" ( (binary_expression "bVar9 == 2" identifier == number_literal) )) (compound_statement "{\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }" { (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a5d" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4fcf5" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" else (if_statement "if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" if (parenthesized_expression "(bVar9 < 3)" ( (binary_expression "bVar9 < 3" identifier < number_literal) )) (compound_statement "{\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }" { (if_statement "if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }" if (parenthesized_expression "(bVar9 != 1)" ( (binary_expression "bVar9 != 1" identifier != number_literal) )) (compound_statement "{\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }" { (expression_statement "*(uint *)(puVar21 + -4) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -4) = uVar10" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c75e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0xa4;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0xa4" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_0005025b" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a66" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4efdd;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4efdd" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" else (compound_statement "{\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" { (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a56" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ef77;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ef77" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) })))))) (expression_statement "uVar13 = *local_90;" (assignment_expression "uVar13 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cd73" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ef9b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -8) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -8) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4efac;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4efac" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000828d0();" (call_expression "FUN_000828d0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;" statement_identifier : (if_statement "if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;" if (parenthesized_expression "((*(byte *)(local_90[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(local_90[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(local_90[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(local_90[2] + 0x2c) & 1" (pointer_expression "*(byte *)(local_90[2] + 0x2c)" * (cast_expression "(byte *)(local_90[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90[2] + 0x2c)" ( (binary_expression "local_90[2] + 0x2c" (subscript_expression "local_90[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ef58;" goto statement_identifier ;))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" else (compound_statement "{\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" { (if_statement "if ((char)uVar10 == '\x04') goto LAB_0004ecc9;" if (parenthesized_expression "((char)uVar10 == '\x04')" ( (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x29)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8)" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,bVar8)" identifier (argument_list "(local_9c._1_3_,bVar8)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar9 = bVar8 & 3;" (assignment_expression "bVar9 = bVar8 & 3" identifier = (binary_expression "bVar8 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }" if (parenthesized_expression "((bVar8 & 3) == 0)" ( (binary_expression "(bVar8 & 3) == 0" (parenthesized_expression "(bVar8 & 3)" ( (binary_expression "bVar8 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }" { (labeled_statement "LAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);" statement_identifier : (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) (labeled_statement "LAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" statement_identifier : (if_statement "if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" if (parenthesized_expression "((char)uVar10 == '\x04')" ( (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" { (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) ))))) ;) (if_statement "if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }" if (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) (compound_statement "{\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }" { (if_statement "if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;" if (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ef17;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);" statement_identifier : (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) }))) (labeled_statement "LAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" statement_identifier : (if_statement "if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" if (parenthesized_expression "((bVar8 & 4) != 0)" ( (binary_expression "(bVar8 & 4) != 0" (parenthesized_expression "(bVar8 & 4)" ( (binary_expression "bVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" { (expression_statement "*(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0xc)" * (cast_expression "(int *)(puVar21 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x10) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x10) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x10)" * (cast_expression "(uint *)(puVar21 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x14) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x14) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x14)" * (cast_expression "(int *)(puVar21 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = (undefined4 *)*param_2;" (assignment_expression "puVar4 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x18) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x18) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x18)" * (cast_expression "(undefined4 **)(puVar21 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x1c) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x1c) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x1c)" * (cast_expression "(undefined4 **)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = (binary_expression "puVar4 + 0x40" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4ec77;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4ec77" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_90 = puVar4;" (assignment_expression "local_90 = puVar4" identifier = identifier) ;) (expression_statement "FUN_001524d0();" (call_expression "FUN_001524d0()" identifier (argument_list "()" ( ))) ;) }))) })) }) (else_clause "else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" else (compound_statement "{\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" { (labeled_statement "LAB_0004f130:\n            local_78 = param_4;" statement_identifier : (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;)) (if_statement "if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }" if (parenthesized_expression "(((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b))" ( (binary_expression "((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)" (parenthesized_expression "((local_b0 - 2 & 0xfffffffd) != 0)" ( (binary_expression "(local_b0 - 2 & 0xfffffffd) != 0" (parenthesized_expression "(local_b0 - 2 & 0xfffffffd)" ( (binary_expression "local_b0 - 2 & 0xfffffffd" (binary_expression "local_b0 - 2" identifier - number_literal) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_b0 != 0x2b)" ( (binary_expression "local_b0 != 0x2b" identifier != number_literal) ))) )) (compound_statement "{\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */\n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }" { (labeled_statement "LAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" statement_identifier : (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdbe" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f182;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f182" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *local_78;" (assignment_expression "uVar10 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar21 + -0x18) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -0x18) = uVar10" (pointer_expression "*(uint *)(puVar21 + -0x18)" * (cast_expression "(uint *)(puVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4f19c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4f19c" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0004e30b;" goto statement_identifier ;) })) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = local_90 == (undefined4 *)0x0;" (assignment_expression "bVar25 = local_90 == (undefined4 *)0x0" identifier = (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) goto LAB_0004f16b;" if (parenthesized_expression "(bVar25)" ( identifier )) (goto_statement "goto LAB_0004f16b;" goto statement_identifier ;)) (expression_statement "iVar15 = 0x10;" (assignment_expression "iVar15 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)*local_90;" (assignment_expression "pbVar17 = (byte *)*local_90" identifier = (cast_expression "(byte *)*local_90" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_90" * identifier))) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3c55);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3c55)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3c55)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3c55)" ( (binary_expression "(int)local_94 + -0xf3c55" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar14;" (assignment_expression "bVar23 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar14;" (assignment_expression "bVar25 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;" if (parenthesized_expression "((!bVar23 && !bVar25) != bVar23)" ( (binary_expression "(!bVar23 && !bVar25) != bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_0004f16b;" goto statement_identifier ;)) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) }))) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_c4;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_c4" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e54f;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e54f" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_ac;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_ac" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e55b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e55b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" else (compound_statement "{\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" { (expression_statement "*(uint *)(puVar21 + -4) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -4) = local_b8" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -8) = param_2[6];" (assignment_expression "*(undefined4 *)(puVar21 + -8) = param_2[6]" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = param_2[2];" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = param_2[2]" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = param_6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = param_6" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f6e0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_b8 = FUN_000efd20();" (assignment_expression "local_b8 = FUN_000efd20()" identifier = (call_expression "FUN_000efd20()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_b8 != 0xffffffff) goto LAB_0004e1d8;" if (parenthesized_expression "(local_b8 != 0xffffffff)" ( (binary_expression "local_b8 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_0004e1d8;" goto statement_identifier ;)) }))) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar21;" (assignment_expression "puVar6 = puVar21" identifier = identifier) ;) }) while (parenthesized_expression "(param_5 != local_a8)" ( (binary_expression "param_5 != local_a8" identifier != identifier) )) ;) })) (if_statement "if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }" if (parenthesized_expression "(local_74 != '\0')" ( (binary_expression "local_74 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }" { (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdbe" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ff97;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ff97" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ff9f" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000828d0();" (call_expression "FUN_000828d0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Removing unreachable block (ram,0x0004f130) */\n/* WARNING: Removing unreachable block (ram,0x0004f13e) */\n/* WARNING: Removing unreachable block (ram,0x0004f143) */\n/* WARNING: Removing unreachable block (ram,0x0004f14d) */\n/* WARNING: Removing unreachable block (ram,0x0004f160) */\n/* WARNING: Removing unreachable block (ram,0x0004f162) */\n/* WARNING: Removing unreachable block (ram,0x0004f16b) */\n/* WARNING: Removing unreachable block (ram,0x0004f1b0) */\n/* WARNING: Removing unreachable block (ram,0x0004ff80) */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void relocate_section(Target_i386 * this, Relocate_info<32,_false> *\n   relinfo, uint sh_type, uchar * prelocs, size_t reloc_count, Output_section * output_section, bool\n   needs_special_offset_handling, uchar * view, Elf_Addr address, section_size_type view_size,\n   Reloc_symbol_changes * reloc_symbol_changes) */\n\nvoid __thiscall\nanon_unknown.dwarf_217836::Target_i386::relocate_section\n          (Target_i386 *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          uchar *view,Elf_Addr address,section_size_type view_size,\n          Reloc_symbol_changes *reloc_symbol_changes)\n\n{\n  byte bVar1;\n  _func_int_varargs **pp_Var2;\n  _func_int_varargs *p_Var3;\n  undefined **ppuVar4;\n  Elf_Addr EVar5;\n  Symbol_table *pSVar6;\n  int *piVar7;\n  code *pcVar8;\n  Output_data_plt_i386 *pOVar9;\n  Sized_relobj_file<32,_false> *pSVar10;\n  pointer pSVar11;\n  pointer ppSVar12;\n  pointer ppOVar13;\n  pointer pcVar14;\n  size_type sVar15;\n  Value *pVVar16;\n  undefined1 *puVar17;\n  bool bVar18;\n  byte bVar19;\n  char cVar20;\n  byte bVar21;\n  uint uVar22;\n  undefined4 uVar23;\n  Value VVar24;\n  undefined4 uVar25;\n  Address AVar26;\n  Relobj *pRVar27;\n  int iVar28;\n  char *pcVar29;\n  int iVar30;\n  uint uVar31;\n  undefined **ppuVar32;\n  undefined4 *puVar33;\n  undefined4 *puVar34;\n  byte *pbVar35;\n  byte *pbVar36;\n  byte *pbVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint64_t uVar41;\n  size_t asStack_114 [5];\n  uint local_100;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  uint local_dc;\n  char local_d1;\n  int local_c8;\n  Symbol_value<32> *local_c4;\n  Sized_relobj_file<32,_false> *local_c0;\n  Sized_relobj_file<32,_false> *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  Symbol_value<32> *local_ac;\n  size_t local_a8;\n  Value *local_a4;\n  Symbol_value<32> *local_a0;\n  Symbol_value<32> *local_9c;\n  int local_98;\n  undefined **local_94;\n  Symbol_table *local_90;\n  bool is_ordinary;\n  bool is_global;\n  Elf_Addr value;\n  uint key_symndx;\n  Rel<32,_false> rel;\n  Relocate relocate;\n  Symbol_value<32> symval;\n  Symbol_value<32> symval2;\n  Symbol_value<32> symval_1;\n  bool found;\n  undefined1 local_2c [28];\n  \n  bVar40 = 0;\n  local_94 = &_GLOBAL_OFFSET_TABLE_;\n  local_d1 = needs_special_offset_handling;\n  if (sh_type != 9) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_c0 = relinfo->object;\n  pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;\n  p_Var3 = pp_Var2[0x23];\n  if (p_Var3 == gold::Relobj::local_symbol_count) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (*pp_Var2[0x2f])(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (*p_Var3)(local_c0);\n  }\n  puVar34 = (undefined4 *)auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e0 = local_94 + 0xbc;\n  local_e4 = local_94 + 0xbc;\n  if (reloc_count != 0) {\n    do {\n      local_b8 = *(uint *)prelocs;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        symval.output_symtab_index_ = 0;\n        symval.output_dynsym_index_ = 0xffffffff;\n        uVar22 = *(uint *)(prelocs + 4);\n        symval._8_4_ = 0x80000000;\n        symval.u_.value = 0;\n        local_a4 = (Value *)(uVar22 >> 8);\n        if (local_a4 < local_dc) {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }\n        else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }\n        ppuVar32 = local_94;\n        local_b0 = uVar22 & 0xff;\n        local_c8 = address + local_b8;\n        if (((int)local_b8 < 0) || (view_size <= local_b8)) {\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }\n        else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }\n  return;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment (ERROR "void __thiscall\nanon_unknown.dwarf_217836::Target_i386::relocate_section\n          (Target_i386 *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          uchar *view,Elf_Addr address,section_size_type view_size,\n          Reloc_symbol_changes *reloc_symbol_changes)\n\n{\n  byte bVar1;\n  _func_int_varargs **pp_Var2;\n  _func_int_varargs *p_Var3;\n  undefined **ppuVar4;\n  Elf_Addr EVar5;\n  Symbol_table *pSVar6;\n  int *piVar7;\n  code *pcVar8;\n  Output_data_plt_i386 *pOVar9;\n  Sized_relobj_file<32,_false> *pSVar10;\n  pointer pSVar11;\n  pointer ppSVar12;\n  pointer ppOVar13;\n  pointer pcVar14;\n  size_type sVar15;\n  Value *pVVar16;\n  undefined1 *puVar17;\n  bool bVar18;\n  byte bVar19;\n  char cVar20;\n  byte bVar21;\n  uint uVar22;\n  undefined4 uVar23;\n  Value VVar24;\n  undefined4 uVar25;\n  Address AVar26;\n  Relobj *pRVar27;\n  int iVar28;\n  char *pcVar29;\n  int iVar30;\n  uint uVar31;\n  undefined **ppuVar32;\n  undefined4 *puVar33;\n  undefined4 *puVar34;\n  byte *pbVar35;\n  byte *pbVar36;\n  byte *pbVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint64_t uVar41;\n  size_t asStack_114 [5];\n  uint local_100;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  uint local_dc;\n  char local_d1;\n  int local_c8;\n  Symbol_value<32> *local_c4;\n  Sized_relobj_file<32,_false> *local_c0;\n  Sized_relobj_file<32,_false> *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  Symbol_value<32> *local_ac;\n  size_t local_a8;\n  Value *local_a4;\n  Symbol_value<32> *local_a0;\n  Symbol_value<32> *local_9c;\n  int local_98;\n  undefined **local_94;\n  Symbol_table *local_90;\n  bool is_ordinary;\n  bool is_global;\n  Elf_Addr value;\n  uint key_symndx;\n  Rel<32,_false> rel;\n  Relocate relocate;\n  Symbol_value<32> symval;\n  Symbol_value<32> symval2;\n  Symbol_value<32> symval_1;\n  bool found;\n  undefined1 local_2c [28];\n  \n  bVar40 = 0;\n  local_94 = &_GLOBAL_OFFSET_TABLE_;\n  local_d1 = needs_special_offset_handling;\n  if (sh_type != 9) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_c0 = relinfo->object;\n  pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;\n  p_Var3 = pp_Var2[0x23];\n  if (p_Var3 == gold::Relobj::local_symbol_count) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (*pp_Var2[0x2f])(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (*p_Var3)(local_c0);\n  }\n  puVar34 = (undefined4 *)auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e0 = local_94 + 0xbc;\n  local_e4 = local_94 + 0xbc;\n  if (reloc_count != 0) {\n    do {\n      local_b8 = *(uint *)prelocs;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        symval.output_symtab_index_ = 0;\n        symval.output_dynsym_index_ = 0xffffffff;\n        uVar22 = *(uint *)(prelocs + 4);\n        symval._8_4_ = 0x80000000;\n        symval.u_.value = 0;\n        local_a4 = (Value *)(uVar22 >> 8);\n        if (local_a4 < local_dc) {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }\n        else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }\n        ppuVar32 = local_94;\n        local_b0 = uVar22 & 0xff;\n        local_c8 = address + local_b8;\n        if (((int)local_b8 < 0) || (view_size <= local_b8)) {\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }\n        else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_217836::Target_i386::" identifier . identifier : : identifier : :) (function_declarator "relocate_section\n          (Target_i386 *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          uchar *view,Elf_Addr address,section_size_type view_size,\n          Reloc_symbol_changes *reloc_symbol_changes)" identifier (parameter_list "(Target_i386 *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          uchar *view,Elf_Addr address,section_size_type view_size,\n          Reloc_symbol_changes *reloc_symbol_changes)" ( (parameter_declaration "Target_i386 *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *relinfo" type_identifier (ERROR ">" >) (pointer_declarator "*relinfo" * identifier)) , (parameter_declaration "uint sh_type" type_identifier identifier) , (parameter_declaration "uchar *prelocs" type_identifier (pointer_declarator "*prelocs" * identifier)) , (parameter_declaration "size_t reloc_count" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "bool needs_special_offset_handling" primitive_type identifier) , (parameter_declaration "uchar *view" type_identifier (pointer_declarator "*view" * identifier)) , (parameter_declaration "Elf_Addr address" type_identifier identifier) , (parameter_declaration "section_size_type view_size" type_identifier identifier) , (parameter_declaration "Reloc_symbol_changes *reloc_symbol_changes" type_identifier (pointer_declarator "*reloc_symbol_changes" * identifier)) ))) { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var2;" type_identifier (pointer_declarator "**pp_Var2" * (pointer_declarator "*pp_Var2" * identifier)) ;) (declaration "_func_int_varargs *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "Elf_Addr EVar5;" type_identifier identifier ;) (declaration "Symbol_table *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "Output_data_plt_i386 *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (expression_statement "Sized_relobj_file<32,_false> *pSVar10;" (comma_expression "Sized_relobj_file<32,_false> *pSVar10" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *pSVar10" identifier > (pointer_expression "*pSVar10" * identifier))) ;) (declaration "pointer pSVar11;" type_identifier identifier ;) (declaration "pointer ppSVar12;" type_identifier identifier ;) (declaration "pointer ppOVar13;" type_identifier identifier ;) (declaration "pointer pcVar14;" type_identifier identifier ;) (declaration "size_type sVar15;" type_identifier identifier ;) (declaration "Value *pVVar16;" type_identifier (pointer_declarator "*pVVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "char cVar20;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "Value VVar24;" type_identifier identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "Address AVar26;" type_identifier identifier ;) (declaration "Relobj *pRVar27;" type_identifier (pointer_declarator "*pRVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "char *pcVar29;" primitive_type (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "undefined **ppuVar32;" type_identifier (pointer_declarator "**ppuVar32" * (pointer_declarator "*ppuVar32" * identifier)) ;) (declaration "undefined4 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined4 *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "byte *pbVar36;" type_identifier (pointer_declarator "*pbVar36" * identifier) ;) (declaration "byte *pbVar37;" type_identifier (pointer_declarator "*pbVar37" * identifier) ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "uint64_t uVar41;" primitive_type identifier ;) (declaration "size_t asStack_114 [5];" primitive_type (array_declarator "asStack_114 [5]" identifier [ number_literal ]) ;) (declaration "uint local_100;" type_identifier identifier ;) (declaration "undefined1 auStack_ec [8];" type_identifier (array_declarator "auStack_ec [8]" identifier [ number_literal ]) ;) (declaration "undefined **local_e4;" type_identifier (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier)) ;) (declaration "undefined **local_e0;" type_identifier (pointer_declarator "**local_e0" * (pointer_declarator "*local_e0" * identifier)) ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "char local_d1;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (expression_statement "Symbol_value<32> *local_c4;" (binary_expression "Symbol_value<32> *local_c4" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "Sized_relobj_file<32,_false> *local_c0;" (comma_expression "Sized_relobj_file<32,_false> *local_c0" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *local_c0" identifier > (pointer_expression "*local_c0" * identifier))) ;) (expression_statement "Sized_relobj_file<32,_false> *local_bc;" (comma_expression "Sized_relobj_file<32,_false> *local_bc" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *local_bc" identifier > (pointer_expression "*local_bc" * identifier))) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (expression_statement "Symbol_value<32> *local_ac;" (binary_expression "Symbol_value<32> *local_ac" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*local_ac" * identifier)) ;) (declaration "size_t local_a8;" primitive_type identifier ;) (declaration "Value *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (expression_statement "Symbol_value<32> *local_a0;" (binary_expression "Symbol_value<32> *local_a0" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*local_a0" * identifier)) ;) (expression_statement "Symbol_value<32> *local_9c;" (binary_expression "Symbol_value<32> *local_9c" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*local_9c" * identifier)) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined **local_94;" type_identifier (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "Symbol_table *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "bool is_ordinary;" primitive_type identifier ;) (declaration "bool is_global;" primitive_type identifier ;) (declaration "Elf_Addr value;" type_identifier identifier ;) (declaration "uint key_symndx;" type_identifier identifier ;) (expression_statement "Rel<32,_false> rel;" (comma_expression "Rel<32,_false> rel" (binary_expression "Rel<32" identifier < number_literal) , (binary_expression "_false> rel" identifier > identifier)) ;) (declaration "Relocate relocate;" type_identifier identifier ;) (expression_statement "Symbol_value<32> symval;" (binary_expression "Symbol_value<32> symval" (binary_expression "Symbol_value<32" identifier < number_literal) > identifier) ;) (expression_statement "Symbol_value<32> symval2;" (binary_expression "Symbol_value<32> symval2" (binary_expression "Symbol_value<32" identifier < number_literal) > identifier) ;) (expression_statement "Symbol_value<32> symval_1;" (binary_expression "Symbol_value<32> symval_1" (binary_expression "Symbol_value<32" identifier < number_literal) > identifier) ;) (declaration "bool found;" primitive_type identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (expression_statement "local_94 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_94 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_d1 = needs_special_offset_handling;" (assignment_expression "local_d1 = needs_special_offset_handling" identifier = identifier) ;) (if_statement "if (sh_type != 9) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");\n  }" if (parenthesized_expression "(sh_type != 9)" ( (binary_expression "sh_type != 9" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");" (call_expression "do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section")" identifier (argument_list "("../../gold/i386.cc",0xe64,"relocate_section")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_section"" " string_content ") ))) ;)) })) (expression_statement "local_c0 = relinfo->object;" (assignment_expression "local_c0 = relinfo->object" identifier = (field_expression "relinfo->object" identifier -> field_identifier)) ;) (expression_statement "pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;" (assignment_expression "pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" identifier = (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(local_c0->super_Sized_relobj<32,_false>)" ( (comma_expression "local_c0->super_Sized_relobj<32,_false" (binary_expression "local_c0->super_Sized_relobj<32" (field_expression "local_c0->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var3 = pp_Var2[0x23];" (assignment_expression "p_Var3 = pp_Var2[0x23]" identifier = (subscript_expression "pp_Var2[0x23]" identifier [ number_literal ])) ;) (if_statement "if (p_Var3 == gold::Relobj::local_symbol_count) {\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (*pp_Var2[0x2f])(local_c0);\n  }\n  else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (*p_Var3)(local_c0);\n  }" if (parenthesized_expression "(p_Var3 == gold::Relobj::local_symbol_count)" ( (ERROR "p_Var3 == gold::Relobj::" (binary_expression "p_Var3 == gold" identifier == identifier) : : identifier : :) identifier )) (compound_statement "{\n                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */\n    local_dc = (*pp_Var2[0x2f])(local_c0);\n  }" { comment (expression_statement "local_dc = (*pp_Var2[0x2f])(local_c0);" (assignment_expression "local_dc = (*pp_Var2[0x2f])(local_c0)" identifier = (call_expression "(*pp_Var2[0x2f])(local_c0)" (parenthesized_expression "(*pp_Var2[0x2f])" ( (pointer_expression "*pp_Var2[0x2f]" * (subscript_expression "pp_Var2[0x2f]" identifier [ number_literal ])) )) (argument_list "(local_c0)" ( identifier )))) ;) }) (else_clause "else {\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (*p_Var3)(local_c0);\n  }" else (compound_statement "{\n                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */\n    local_dc = (*p_Var3)(local_c0);\n  }" { comment (expression_statement "local_dc = (*p_Var3)(local_c0);" (assignment_expression "local_dc = (*p_Var3)(local_c0)" identifier = (call_expression "(*p_Var3)(local_c0)" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "(local_c0)" ( identifier )))) ;) }))) (expression_statement "puVar34 = (undefined4 *)auStack_ec;" (assignment_expression "puVar34 = (undefined4 *)auStack_ec" identifier = (cast_expression "(undefined4 *)auStack_ec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_e0 = local_94 + 0xbc;" (assignment_expression "local_e0 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (expression_statement "local_e4 = local_94 + 0xbc;" (assignment_expression "local_e4 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) if (parenthesized_expression "(reloc_count != 0)" ( (binary_expression "reloc_count != 0" identifier != number_literal) )) { do (compound_statement "{\n      local_b8 = *(uint *)prelocs;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        symval.output_symtab_index_ = 0;\n        symval.output_dynsym_index_ = 0xffffffff;\n        uVar22 = *(uint *)(prelocs + 4);\n        symval._8_4_ = 0x80000000;\n        symval.u_.value = 0;\n        local_a4 = (Value *)(uVar22 >> 8);\n        if (local_a4 < local_dc) {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }\n        else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }\n        ppuVar32 = local_94;\n        local_b0 = uVar22 & 0xff;\n        local_c8 = address + local_b8;\n        if (((int)local_b8 < 0) || (view_size <= local_b8)) {\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }\n        else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }\n  return;\n}" { (expression_statement "local_b8 = *(uint *)prelocs;" (assignment_expression "local_b8 = *(uint *)prelocs" identifier = (pointer_expression "*(uint *)prelocs" * (cast_expression "(uint *)prelocs" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_d1 == '\0') {\nLAB_0004e1d8:\n        symval.output_symtab_index_ = 0;\n        symval.output_dynsym_index_ = 0xffffffff;\n        uVar22 = *(uint *)(prelocs + 4);\n        symval._8_4_ = 0x80000000;\n        symval.u_.value = 0;\n        local_a4 = (Value *)(uVar22 >> 8);\n        if (local_a4 < local_dc) {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }\n        else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }\n        ppuVar32 = local_94;\n        local_b0 = uVar22 & 0xff;\n        local_c8 = address + local_b8;\n        if (((int)local_b8 < 0) || (view_size <= local_b8)) {\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }\n        else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }\n  return;\n}" if (parenthesized_expression "(local_d1 == '\0')" ( (binary_expression "local_d1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e1d8:\n        symval.output_symtab_index_ = 0;\n        symval.output_dynsym_index_ = 0xffffffff;\n        uVar22 = *(uint *)(prelocs + 4);\n        symval._8_4_ = 0x80000000;\n        symval.u_.value = 0;\n        local_a4 = (Value *)(uVar22 >> 8);\n        if (local_a4 < local_dc) {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }\n        else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }\n        ppuVar32 = local_94;\n        local_b0 = uVar22 & 0xff;\n        local_c8 = address + local_b8;\n        if (((int)local_b8 < 0) || (view_size <= local_b8)) {\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }\n        else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }\n  return;\n}" { (labeled_statement "LAB_0004e1d8:\n        symval.output_symtab_index_ = 0;" statement_identifier : (expression_statement "symval.output_symtab_index_ = 0;" (assignment_expression "symval.output_symtab_index_ = 0" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = number_literal) ;)) (expression_statement "symval.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval.output_dynsym_index_ = 0xffffffff" (field_expression "symval.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "symval._8_4_ = 0x80000000;" (assignment_expression "symval._8_4_ = 0x80000000" (field_expression "symval._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval.u_.value = 0;" (assignment_expression "symval.u_.value = 0" (field_expression "symval.u_.value" (field_expression "symval.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_a4 = (Value *)(uVar22 >> 8);" (assignment_expression "local_a4 = (Value *)(uVar22 >> 8)" identifier = (cast_expression "(Value *)(uVar22 >> 8)" ( (type_descriptor "Value *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 >> 8)" ( (binary_expression "uVar22 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (local_a4 < local_dc) {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }\n        else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }" if (parenthesized_expression "(local_a4 < local_dc)" ( (binary_expression "local_a4 < local_dc" identifier < identifier) )) (compound_statement "{\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }\n          pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_9c = pSVar11 + (int)local_a4;\n          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;\n          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;\n          local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;\n          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppOVar13[local_b0];\n          if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)((int)puVar34 + -8) = local_b0;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;\n          bVar18 = gold::Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));\n          if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &symval;\n          local_a0 = &symval_1;\n          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;\n          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;\n          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;\n          local_c4 = &symval2;\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */\n          p_Var3 = pp_Var2[0x10];\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;\n          (*p_Var3)();\n          bVar18 = false;\n          bVar39 = local_b4 == 0;\n          if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }\n          puVar33 = (undefined4 *)((int)puVar34 + -4);\n          if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }\n          symval2.output_symtab_index_ = 0xffffffff;\n          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }\n          local_c4 = &symval2;\n          uVar22 = *(uint *)(prelocs + 4);\n          local_9c = &symval2;\n        }" { (if_statement "if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }" if (parenthesized_expression "((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0))" ( (binary_expression "(reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)" (parenthesized_expression "(reloc_symbol_changes != (Reloc_symbol_changes *)0x0)" ( (binary_expression "reloc_symbol_changes != (Reloc_symbol_changes *)0x0" identifier != (cast_expression "(Reloc_symbol_changes *)0x0" ( (type_descriptor "Reloc_symbol_changes *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)" ( (comma_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0" (subscript_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8]" (field_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start" (field_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std" (assignment_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold" identifier = (binary_expression "(Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold" (cast_expression "(Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(reloc_symbol_changes->vec_).\n                         super__Vector_base" (parenthesized_expression "(reloc_symbol_changes->vec_)" ( (field_expression "reloc_symbol_changes->vec_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) , (binary_expression "local_90 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0004e238:\n            uVar31 = local_90->output_count_;\n            uVar22 = uVar31 - 1;\n            if (0xfffffffd < uVar22) goto LAB_0004e24d;\nLAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            symval.output_symtab_index_ = uVar31;\n            goto LAB_0004e254;\n          }" { (labeled_statement "LAB_0004e238:\n            uVar31 = local_90->output_count_;" statement_identifier : (expression_statement "uVar31 = local_90->output_count_;" (assignment_expression "uVar31 = local_90->output_count_" identifier = (field_expression "local_90->output_count_" identifier -> field_identifier)) ;)) (expression_statement "uVar22 = uVar31 - 1;" (assignment_expression "uVar22 = uVar31 - 1" identifier = (binary_expression "uVar31 - 1" identifier - number_literal)) ;) (if_statement "if (0xfffffffd < uVar22) goto LAB_0004e24d;" if (parenthesized_expression "(0xfffffffd < uVar22)" ( (binary_expression "0xfffffffd < uVar22" number_literal < identifier) )) (goto_statement "goto LAB_0004e24d;" goto statement_identifier ;)) (labeled_statement "LAB_0004f6b0:\n            if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }" statement_identifier : (if_statement "if (uVar22 == 0xfffffffd) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }" if (parenthesized_expression "(uVar22 == 0xfffffffd)" ( (binary_expression "uVar22 == 0xfffffffd" identifier == number_literal) )) (compound_statement "{\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }" { (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c715" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x70d;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x70d" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x501b9" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) }))) (expression_statement "symval.output_symtab_index_ = uVar31;" (assignment_expression "symval.output_symtab_index_ = uVar31" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_0004e254;" goto statement_identifier ;) })) (expression_statement "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start;" (field_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl._M_start" (field_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                    ._M_impl" (binary_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold::Symbol_value<32" (assignment_expression "pSVar11 = (local_c0->local_values_).\n                    super__Vector_base<gold" identifier = (binary_expression "(local_c0->local_values_).\n                    super__Vector_base<gold" (field_expression "(local_c0->local_values_).\n                    super__Vector_base" (parenthesized_expression "(local_c0->local_values_)" ( (field_expression "local_c0->local_values_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish;" (field_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl._M_finish" (field_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                     ._M_impl" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold::Symbol_value<32" (assignment_expression "local_90 = (Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold" identifier = (binary_expression "(Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base<gold" (cast_expression "(Symbol_table *)\n                     (local_c0->local_values_).\n                     super__Vector_base" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_c0->local_values_).\n                     super__Vector_base" (parenthesized_expression "(local_c0->local_values_)" ( (field_expression "local_c0->local_values_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" if (parenthesized_expression "((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4)" ( (binary_expression "(uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4" (call_expression "(uint)((int)local_90 - (int)pSVar11 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - (int)pSVar11 >> 4)" ( (binary_expression "(int)local_90 - (int)pSVar11 >> 4" (binary_expression "(int)local_90 - (int)pSVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar11" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c62b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x8c1" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x50169;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x50169" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_9c = pSVar11 + (int)local_a4;" (assignment_expression "local_9c = pSVar11 + (int)local_a4" identifier = (binary_expression "pSVar11 + (int)local_a4" identifier + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;" (assignment_expression "local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff" identifier = (binary_expression "*(uint *)&local_9c->field_0x8 & 0x7ffffff" (pointer_expression "*(uint *)&local_9c->field_0x8" * (cast_expression "(uint *)&local_9c->field_0x8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_9c->field_0x8" & (field_expression "local_9c->field_0x8" identifier -> field_identifier)))) & number_literal)) ;) (if_statement "if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(((local_9c->field_0xb & 8) == 0) || (local_b0 == 0))" ( (binary_expression "((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)" (parenthesized_expression "((local_9c->field_0xb & 8) == 0)" ( (binary_expression "(local_9c->field_0xb & 8) == 0" (parenthesized_expression "(local_9c->field_0xb & 8)" ( (binary_expression "local_9c->field_0xb & 8" (field_expression "local_9c->field_0xb" identifier -> field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_90 = (Symbol_table *)0x0;" (assignment_expression "local_90 = (Symbol_table *)0x0" identifier = (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (expression_statement "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start;" (field_expression "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_start" (field_expression "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl" (binary_expression "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold" identifier = (binary_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(local_c0->super_Sized_relobj<32,_false>)" ( (comma_expression "local_c0->super_Sized_relobj<32,_false" (binary_expression "local_c0->super_Sized_relobj<32" (field_expression "local_c0->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish;" (field_expression "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl._M_finish" (field_expression "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                     ._M_impl" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold::Output_section*,_std" (assignment_expression "local_90 = (Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold" identifier = (binary_expression "(Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base<gold" (cast_expression "(Symbol_table *)\n                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                     super__Vector_base" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(local_c0->super_Sized_relobj<32,_false>)" ( (comma_expression "local_c0->super_Sized_relobj<32,_false" (binary_expression "local_c0->super_Sized_relobj<32" (field_expression "local_c0->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" if (parenthesized_expression "((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0)" ( (binary_expression "(uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0" (call_expression "(uint)((int)local_90 - (int)ppOVar13 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - (int)ppOVar13 >> 2)" ( (binary_expression "(int)local_90 - (int)ppOVar13 >> 2" (binary_expression "(int)local_90 - (int)ppOVar13" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppOVar13" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(uint *)((int)puVar34 + -4) = local_b0;\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */\n            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" { (expression_statement "*(uint *)((int)puVar34 + -4) = local_b0;" (assignment_expression "*(uint *)((int)puVar34 + -4) = local_b0" (pointer_expression "*(uint *)((int)puVar34 + -4)" * (cast_expression "(uint *)((int)puVar34 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -4)" ( (binary_expression "(int)puVar34 + -4" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c6d7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;" (assignment_expression "*(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba" (pointer_expression "*(undefined1 **)((int)puVar34 + -0x14)" * (cast_expression "(undefined1 **)((int)puVar34 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_000502ba" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_90 = (Symbol_table *)ppOVar13[local_b0];" (assignment_expression "local_90 = (Symbol_table *)ppOVar13[local_b0]" identifier = (cast_expression "(Symbol_table *)ppOVar13[local_b0]" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppOVar13[local_b0]" identifier [ identifier ]))) ;) (if_statement "if (local_90 != (Symbol_table *)0x0) {\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(local_90 != (Symbol_table *)0x0)" ( (binary_expression "local_90 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_90 = (Symbol_table *)0x0;\n            local_ac = &symval;\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_90 = (Symbol_table *)0x0;" (assignment_expression "local_90 = (Symbol_table *)0x0" identifier = (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (expression_statement "*(uint *)((int)puVar34 + -8) = local_b0;" (assignment_expression "*(uint *)((int)puVar34 + -8) = local_b0" (pointer_expression "*(uint *)((int)puVar34 + -8)" * (cast_expression "(uint *)((int)puVar34 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;" (assignment_expression "*(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab" (pointer_expression "*(Symbol_table **)((int)puVar34 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar34 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "relinfo->symtab" identifier -> field_identifier)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));" (call_expression "is_section_folded\n                             (*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8))" identifier (argument_list "(*(Symbol_table **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8))" ( (pointer_expression "*(Symbol_table **)((int)puVar34 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar34 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Relobj **)((int)puVar34 + -0xc)" * (cast_expression "(Relobj **)((int)puVar34 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -8)" * (cast_expression "(uint *)((int)puVar34 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (if_statement "if (bVar18) {\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n            local_ac = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f331:\n          local_ac = &symval;" statement_identifier : (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;)) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object\n          ;" (assignment_expression "pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" identifier = (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(local_c0->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(local_c0->super_Sized_relobj<32,_false>)" ( (comma_expression "local_c0->super_Sized_relobj<32,_false" (binary_expression "local_c0->super_Sized_relobj<32" (field_expression "local_c0->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)((int)puVar34 + -8) = relinfo->data_shndx;" (assignment_expression "*(uint *)((int)puVar34 + -8) = relinfo->data_shndx" (pointer_expression "*(uint *)((int)puVar34 + -8)" * (cast_expression "(uint *)((int)puVar34 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "relinfo->data_shndx" identifier -> field_identifier)) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;" (assignment_expression "*(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0" (pointer_expression "*(Symbol_value<32> **)((int)puVar34 + -0x10)" * (call_expression "(Symbol_value<32> **)((int)puVar34 + -0x10)" (parenthesized_expression "(Symbol_value<32> **)" ( (binary_expression "Symbol_value<32> **" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = &symval2;" (assignment_expression "local_c4 = &symval2" identifier = (pointer_expression "&symval2" & identifier)) ;) (expression_statement "symval2.output_symtab_index_ = 0;" (assignment_expression "symval2.output_symtab_index_ = 0" (field_expression "symval2.output_symtab_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval2.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval2.output_dynsym_index_ = 0xffffffff" (field_expression "symval2.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval2._8_4_ = 0x80000000;" (assignment_expression "symval2._8_4_ = 0x80000000" (field_expression "symval2._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval2.u_.value = 0;" (assignment_expression "symval2.u_.value = 0" (field_expression "symval2.u_.value" (field_expression "symval2.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) comment (expression_statement "p_Var3 = pp_Var2[0x10];" (assignment_expression "p_Var3 = pp_Var2[0x10]" identifier = (subscript_expression "pp_Var2[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x4f375" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*p_Var3)();" (call_expression "(*p_Var3)()" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar39 = local_b4 == 0;" (assignment_expression "bVar39 = local_b4 == 0" identifier = (binary_expression "local_b4 == 0" identifier == number_literal)) ;) (if_statement "if (bVar39) {\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n            iVar28 = 6;\n            pbVar36 = (byte *)symval_1.output_symtab_index_;\n            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);\n            bVar38 = false;\n            bVar18 = (!bVar18 && !bVar39) == bVar18;\n            if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;\n            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;\n            *(uint *)((int)puVar34 + -0x10) = local_b0;\n            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;\n                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;\n            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));\n            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;\n            if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }\n            local_b4 = 1;\n          }" { (expression_statement "iVar28 = 6;" (assignment_expression "iVar28 = 6" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_94 + -0xf3ac3);" (assignment_expression "pbVar35 = (byte *)((int)local_94 + -0xf3ac3)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3ac3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3ac3)" ( (binary_expression "(int)local_94 + -0xf3ac3" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar39);" do (compound_statement "{\n              if (iVar28 == 0) break;\n              iVar28 = iVar28 + -1;\n              bVar18 = *pbVar36 < *pbVar35;\n              bVar39 = *pbVar36 == *pbVar35;\n              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar36 < *pbVar35;" (assignment_expression "bVar18 = *pbVar36 < *pbVar35" identifier = (binary_expression "*pbVar36 < *pbVar35" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar39 = *pbVar36 == *pbVar35;" (assignment_expression "bVar39 = *pbVar36 == *pbVar35" identifier = (binary_expression "*pbVar36 == *pbVar35" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar18 && !bVar39) == bVar18;" (assignment_expression "bVar18 = (!bVar18 && !bVar39) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar39) == bVar18" (parenthesized_expression "(!bVar18 && !bVar39)" ( (binary_expression "!bVar18 && !bVar39" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n              iVar28 = 7;\n              pbVar36 = (byte *)symval_1.output_symtab_index_;\n              ppuVar32 = local_94 + -0x3ceaf;\n              do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);\n              bVar39 = false;\n              bVar18 = (!bVar38 && !bVar18) == bVar38;\n              if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar28 = 7;" (assignment_expression "iVar28 = 7" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "ppuVar32 = local_94 + -0x3ceaf;" (assignment_expression "ppuVar32 = local_94 + -0x3ceaf" identifier = (binary_expression "local_94 + -0x3ceaf" identifier + number_literal)) ;) (do_statement "do {\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              } while (bVar18);" do (compound_statement "{\n                if (iVar28 == 0) break;\n                iVar28 = iVar28 + -1;\n                bVar38 = *pbVar36 < *(byte *)ppuVar32;\n                bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n              }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar36 < *(byte *)ppuVar32;" (assignment_expression "bVar38 = *pbVar36 < *(byte *)ppuVar32" identifier = (binary_expression "*pbVar36 < *(byte *)ppuVar32" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar18 = *pbVar36 == *(byte *)ppuVar32;" (assignment_expression "bVar18 = *pbVar36 == *(byte *)ppuVar32" identifier = (binary_expression "*pbVar36 == *(byte *)ppuVar32" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar38 && !bVar18) == bVar38;" (assignment_expression "bVar18 = (!bVar38 && !bVar18) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar18) == bVar38" (parenthesized_expression "(!bVar38 && !bVar18)" ( (binary_expression "!bVar38 && !bVar18" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n                iVar28 = 0x11;\n                pbVar36 = (byte *)symval_1.output_symtab_index_;\n                ppuVar32 = local_94 + -0x3cead;\n                do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);\n                bVar38 = false;\n                bVar18 = (!bVar39 && !bVar18) == bVar39;\n                if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar28 = 0x11;" (assignment_expression "iVar28 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "ppuVar32 = local_94 + -0x3cead;" (assignment_expression "ppuVar32 = local_94 + -0x3cead" identifier = (binary_expression "local_94 + -0x3cead" identifier + number_literal)) ;) (do_statement "do {\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                } while (bVar18);" do (compound_statement "{\n                  if (iVar28 == 0) break;\n                  iVar28 = iVar28 + -1;\n                  bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                  bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar39 = *pbVar36 < *(byte *)ppuVar32;" (assignment_expression "bVar39 = *pbVar36 < *(byte *)ppuVar32" identifier = (binary_expression "*pbVar36 < *(byte *)ppuVar32" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar18 = *pbVar36 == *(byte *)ppuVar32;" (assignment_expression "bVar18 = *pbVar36 == *(byte *)ppuVar32" identifier = (binary_expression "*pbVar36 == *(byte *)ppuVar32" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar39 && !bVar18) == bVar39;" (assignment_expression "bVar18 = (!bVar39 && !bVar18) == bVar39" identifier = (binary_expression "(!bVar39 && !bVar18) == bVar39" (parenthesized_expression "(!bVar39 && !bVar18)" ( (binary_expression "!bVar39 && !bVar18" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n                  iVar28 = 5;\n                  pbVar36 = (byte *)symval_1.output_symtab_index_;\n                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);\n                  bVar39 = false;\n                  bVar18 = (!bVar38 && !bVar18) == bVar38;\n                  if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar28 = 5;" (assignment_expression "iVar28 = 5" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_94 + -0xf3aa2);" (assignment_expression "pbVar35 = (byte *)((int)local_94 + -0xf3aa2)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3aa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3aa2)" ( (binary_expression "(int)local_94 + -0xf3aa2" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  } while (bVar18);" do (compound_statement "{\n                    if (iVar28 == 0) break;\n                    iVar28 = iVar28 + -1;\n                    bVar38 = *pbVar36 < *pbVar35;\n                    bVar18 = *pbVar36 == *pbVar35;\n                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                  }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar36 < *pbVar35;" (assignment_expression "bVar38 = *pbVar36 < *pbVar35" identifier = (binary_expression "*pbVar36 < *pbVar35" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar18 = *pbVar36 == *pbVar35;" (assignment_expression "bVar18 = *pbVar36 == *pbVar35" identifier = (binary_expression "*pbVar36 == *pbVar35" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar38 && !bVar18) == bVar38;" (assignment_expression "bVar18 = (!bVar38 && !bVar18) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar18) == bVar38" (parenthesized_expression "(!bVar38 && !bVar18)" ( (binary_expression "!bVar38 && !bVar18" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n                    iVar28 = 5;\n                    pbVar36 = (byte *)symval_1.output_symtab_index_;\n                    ppuVar32 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);\n                    bVar38 = false;\n                    bVar18 = (!bVar39 && !bVar18) == bVar39;\n                    if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" { (expression_statement "iVar28 = 5;" (assignment_expression "iVar28 = 5" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "ppuVar32 = local_94 + -0x3cea7;" (assignment_expression "ppuVar32 = local_94 + -0x3cea7" identifier = (binary_expression "local_94 + -0x3cea7" identifier + number_literal)) ;) (do_statement "do {\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    } while (bVar18);" do (compound_statement "{\n                      if (iVar28 == 0) break;\n                      iVar28 = iVar28 + -1;\n                      bVar39 = *pbVar36 < *(byte *)ppuVar32;\n                      bVar18 = *pbVar36 == *(byte *)ppuVar32;\n                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                    }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar39 = *pbVar36 < *(byte *)ppuVar32;" (assignment_expression "bVar39 = *pbVar36 < *(byte *)ppuVar32" identifier = (binary_expression "*pbVar36 < *(byte *)ppuVar32" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar18 = *pbVar36 == *(byte *)ppuVar32;" (assignment_expression "bVar18 = *pbVar36 == *(byte *)ppuVar32" identifier = (binary_expression "*pbVar36 == *(byte *)ppuVar32" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar39 && !bVar18) == bVar39;" (assignment_expression "bVar18 = (!bVar39 && !bVar18) == bVar39" identifier = (binary_expression "(!bVar39 && !bVar18) == bVar39" (parenthesized_expression "(!bVar39 && !bVar18)" ( (binary_expression "!bVar39 && !bVar18" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n                      iVar28 = 4;\n                      pbVar36 = (byte *)symval_1.output_symtab_index_;\n                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" { (expression_statement "iVar28 = 4;" (assignment_expression "iVar28 = 4" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_94 + -0xf3a96);" (assignment_expression "pbVar35 = (byte *)((int)local_94 + -0xf3a96)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3a96)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3a96)" ( (binary_expression "(int)local_94 + -0xf3a96" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);" do (compound_statement "{\n                        if (iVar28 == 0) break;\n                        iVar28 = iVar28 + -1;\n                        bVar38 = *pbVar36 < *pbVar35;\n                        bVar18 = *pbVar36 == *pbVar35;\n                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                      }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar36 < *pbVar35;" (assignment_expression "bVar38 = *pbVar36 < *pbVar35" identifier = (binary_expression "*pbVar36 < *pbVar35" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar18 = *pbVar36 == *pbVar35;" (assignment_expression "bVar18 = *pbVar36 == *pbVar35" identifier = (binary_expression "*pbVar36 == *pbVar35" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar38 && !bVar18) == bVar38;" (assignment_expression "bVar18 = (!bVar38 && !bVar18) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar18) == bVar38" (parenthesized_expression "(!bVar38 && !bVar18)" ( (binary_expression "!bVar38 && !bVar18" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n                        iVar28 = 10;\n                        pbVar36 = (byte *)symval_1.output_symtab_index_;\n                        pbVar35 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        bVar38 = false;\n                        bVar18 = (!bVar39 && !bVar18) == bVar39;\n                        if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" { (expression_statement "iVar28 = 10;" (assignment_expression "iVar28 = 10" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_94 + -0xf1212);" (assignment_expression "pbVar35 = (byte *)((int)local_94 + -0xf1212)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf1212)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf1212)" ( (binary_expression "(int)local_94 + -0xf1212" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);" do (compound_statement "{\n                          if (iVar28 == 0) break;\n                          iVar28 = iVar28 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar39 = *pbVar36 < *pbVar35;" (assignment_expression "bVar39 = *pbVar36 < *pbVar35" identifier = (binary_expression "*pbVar36 < *pbVar35" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar18 = *pbVar36 == *pbVar35;" (assignment_expression "bVar18 = *pbVar36 == *pbVar35" identifier = (binary_expression "*pbVar36 == *pbVar35" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar39 && !bVar18) == bVar39;" (assignment_expression "bVar18 = (!bVar39 && !bVar18) == bVar39" identifier = (binary_expression "(!bVar39 && !bVar18) == bVar39" (parenthesized_expression "(!bVar39 && !bVar18)" ( (binary_expression "!bVar39 && !bVar18" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar18) {\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n                          iVar28 = 0x12;\n                          pbVar36 = (byte *)symval_1.output_symtab_index_;\n                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);\n                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;\n                        }" { (expression_statement "iVar28 = 0x12;" (assignment_expression "iVar28 = 0x12" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)symval_1.output_symtab_index_;" (assignment_expression "pbVar36 = (byte *)symval_1.output_symtab_index_" identifier = (cast_expression "(byte *)symval_1.output_symtab_index_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_94 + -0xf3a91);" (assignment_expression "pbVar35 = (byte *)((int)local_94 + -0xf3a91)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3a91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3a91)" ( (binary_expression "(int)local_94 + -0xf3a91" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          } while (bVar18);" do (compound_statement "{\n                            if (iVar28 == 0) break;\n                            iVar28 = iVar28 + -1;\n                            bVar38 = *pbVar36 < *pbVar35;\n                            bVar18 = *pbVar36 == *pbVar35;\n                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                          }" { (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar36 < *pbVar35;" (assignment_expression "bVar38 = *pbVar36 < *pbVar35" identifier = (binary_expression "*pbVar36 < *pbVar35" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar18 = *pbVar36 == *pbVar35;" (assignment_expression "bVar18 = *pbVar36 == *pbVar35" identifier = (binary_expression "*pbVar36 == *pbVar35" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;" if (parenthesized_expression "((!bVar38 && !bVar18) != bVar38)" ( (binary_expression "(!bVar38 && !bVar18) != bVar38" (parenthesized_expression "(!bVar38 && !bVar18)" ( (binary_expression "!bVar38 && !bVar18" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_0004f50a;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0004f5da;" goto statement_identifier ;) })) })) })) })) })) })) (labeled_statement "LAB_0004f3ac:\n            *(bool **)((int)puVar34 + -8) = &found;" statement_identifier : (expression_statement "*(bool **)((int)puVar34 + -8) = &found;" (assignment_expression "*(bool **)((int)puVar34 + -8) = &found" (pointer_expression "*(bool **)((int)puVar34 + -8)" * (cast_expression "(bool **)((int)puVar34 + -8)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&found" & identifier)) ;)) (expression_statement "*(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;" (assignment_expression "*(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0" (pointer_expression "*(Symbol_value<32> **)((int)puVar34 + -0xc)" * (call_expression "(Symbol_value<32> **)((int)puVar34 + -0xc)" (parenthesized_expression "(Symbol_value<32> **)" ( (binary_expression "Symbol_value<32> **" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)puVar34 + -0x10) = local_b0;" (assignment_expression "*(uint *)((int)puVar34 + -0x10) = local_b0" (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "AVar26 = gold::" (assignment_expression "AVar26 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8));" (comma_expression "Sized_relobj_file<32,_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8))" identifier > (ERROR "::" : :) (call_expression "map_to_kept_section\n                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8))" identifier (argument_list "(*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),\n                                *(bool **)((int)puVar34 + -8))" ( (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(string **)((int)puVar34 + -0xc)" * (cast_expression "(string **)((int)puVar34 + -0xc)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool **)((int)puVar34 + -8)" * (cast_expression "(bool **)((int)puVar34 + -8)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;" (assignment_expression "symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0" (field_expression "symval2.u_" identifier . field_identifier) = (cast_expression "(anon_union_4_2_6a937475_for_u_)0x0" ( (type_descriptor "anon_union_4_2_6a937475_for_u_" type_identifier) ) number_literal)) ;) (if_statement "if (found != false) {\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }" if (parenthesized_expression "(found != false)" ( (binary_expression "found != false" identifier != false) )) (compound_statement "{\n              symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);\n            }" { (expression_statement "symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);" (assignment_expression "symval2.u_.merged_symbol_value =\n                   (Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26)" (field_expression "symval2.u_.merged_symbol_value" (field_expression "symval2.u_" identifier . field_identifier) . field_identifier) = (call_expression "(Merged_symbol_value<32> *)\n                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26)" (parenthesized_expression "(Merged_symbol_value<32> *)" ( (binary_expression "Merged_symbol_value<32> *" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26)" ( (binary_expression "(int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26" (cast_expression "(int)&((local_9c->u_).merged_symbol_value)->input_value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((local_9c->u_).merged_symbol_value)->input_value_" & (field_expression "((local_9c->u_).merged_symbol_value)->input_value_" (parenthesized_expression "((local_9c->u_).merged_symbol_value)" ( (field_expression "(local_9c->u_).merged_symbol_value" (parenthesized_expression "(local_9c->u_)" ( (field_expression "local_9c->u_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) + identifier) )))) ;) })) (expression_statement "local_b4 = 1;" (assignment_expression "local_b4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }" else (compound_statement "{\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            symval2.u_.value = 0;\n          }" { (if_statement "if (local_b4 == 1) goto LAB_0004f3ac;" if (parenthesized_expression "(local_b4 == 1)" ( (binary_expression "local_b4 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004f3ac;" goto statement_identifier ;)) (if_statement "if (local_b4 == 3) {\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" if (parenthesized_expression "(local_b4 == 3)" ( (binary_expression "local_b4 == 3" identifier == number_literal) )) (compound_statement "{\nLAB_0004f50a:\n              pSVar10 = relinfo->object;\n              if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }\n              *(bool **)((int)puVar34 + -8) = &is_ordinary;\n              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;\n              *(Value **)((int)puVar34 + -0x10) = local_a4;\n              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */\n              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;\n              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));\n              if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }\n              local_b4 = 3;\n            }" { (labeled_statement "LAB_0004f50a:\n              pSVar10 = relinfo->object;" statement_identifier : (expression_statement "pSVar10 = relinfo->object;" (assignment_expression "pSVar10 = relinfo->object" identifier = (field_expression "relinfo->object" identifier -> field_identifier)) ;)) (if_statement "if (local_90 == (Symbol_table *)0x0) {\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }\n              else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }" if (parenthesized_expression "(local_90 == (Symbol_table *)0x0)" ( (binary_expression "local_90 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *(Value **)((int)puVar34 + -0x10) = local_a4;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;\n                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;\n                uVar23 = gettext();\n                *(Value **)((int)puVar34 + -0xc) = local_a4;\n                *(char **)((int)puVar34 + -0x10) = pcVar29;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n              }" { (expression_statement "*(Value **)((int)puVar34 + -0x10) = local_a4;" (assignment_expression "*(Value **)((int)puVar34 + -0x10) = local_a4" (pointer_expression "*(Value **)((int)puVar34 + -0x10)" * (cast_expression "(Value **)((int)puVar34 + -0x10)" ( (type_descriptor "Value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "pcVar29 = gold::" (assignment_expression "pcVar29 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10));" (comma_expression "Sized_relobj_file<32,_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10))" identifier > (ERROR "::" : :) (call_expression "get_symbol_name\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10))" identifier (argument_list "(*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10))" ( (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;" (assignment_expression "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa" (pointer_expression "*(undefined ***)((int)puVar34 + -0x14)" * (cast_expression "(undefined ***)((int)puVar34 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3cdfa" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f965" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(Value **)((int)puVar34 + -0xc) = local_a4;" (assignment_expression "*(Value **)((int)puVar34 + -0xc) = local_a4" (pointer_expression "*(Value **)((int)puVar34 + -0xc)" * (cast_expression "(Value **)((int)puVar34 + -0xc)" ( (type_descriptor "Value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)puVar34 + -0x10) = pcVar29;" (assignment_expression "*(char **)((int)puVar34 + -0x10) = pcVar29" (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = uVar23;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = uVar23" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)((int)puVar34 + -0x18)" * (cast_expression "(int *)((int)puVar34 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)((int)puVar34 + -0x1c) = local_b8;" (assignment_expression "*(uint *)((int)puVar34 + -0x1c) = local_b8" (pointer_expression "*(uint *)((int)puVar34 + -0x1c)" * (cast_expression "(uint *)((int)puVar34 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x1c)" ( (binary_expression "(int)puVar34 + -0x1c" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)((int)puVar34 + -0x20) = local_a8;" (assignment_expression "*(size_t *)((int)puVar34 + -0x20) = local_a8" (pointer_expression "*(size_t *)((int)puVar34 + -0x20)" * (cast_expression "(size_t *)((int)puVar34 + -0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x20)" ( (binary_expression "(int)puVar34 + -0x20" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;" (assignment_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo" (pointer_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x24)" * (call_expression "(Relocate_info<32,_false> **)((int)puVar34 + -0x24)" (parenthesized_expression "(Relocate_info<32,_false> **)" ( (comma_expression "Relocate_info<32,_false> **" (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x24)" ( (binary_expression "(int)puVar34 + -0x24" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x28)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x28)" ( (binary_expression "(int)puVar34 + -0x28" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));" (comma_expression "gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10))" (binary_expression "gold_error_at_location<32" identifier < number_literal) , (binary_expression "_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10))" identifier > (parenthesized_expression "(*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10))" ( (comma_expression "*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(gold **)((int)puVar34 + -0x24)" * (cast_expression "(gold **)((int)puVar34 + -0x24)" ( (type_descriptor "gold **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x24)" ( (binary_expression "(int)puVar34 + -0x24" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x20)" * (call_expression "(Relocate_info<32,_false> **)((int)puVar34 + -0x20)" (parenthesized_expression "(Relocate_info<32,_false> **)" ( (comma_expression "Relocate_info<32,_false> **" (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x20)" ( (binary_expression "(int)puVar34 + -0x20" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(size_t *)((int)puVar34 + -0x1c)" * (cast_expression "(size_t *)((int)puVar34 + -0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x1c)" ( (binary_expression "(int)puVar34 + -0x1c" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(off_t *)((int)puVar34 + -0x18)" * (cast_expression "(off_t *)((int)puVar34 + -0x18)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) )))) ;)) }) (else_clause "else {\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }" else (compound_statement "{\n                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;\n                *(bool **)((int)puVar34 + -0x14) = &found;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;\n                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));\n                puVar17 = _found;\n                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;\n                uVar23 = gettext();\n                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;\n                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)((int)puVar34 + -0x1c) = local_b8;\n                *(size_t *)((int)puVar34 + -0x20) = local_a8;\n                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;\n                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */\n                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;\n                gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));\n                if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }\n              }" { (expression_statement "*(Symbol_table **)((int)puVar34 + -0x10) = local_90;" (assignment_expression "*(Symbol_table **)((int)puVar34 + -0x10) = local_90" (pointer_expression "*(Symbol_table **)((int)puVar34 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar34 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(bool **)((int)puVar34 + -0x14) = &found;" (assignment_expression "*(bool **)((int)puVar34 + -0x14) = &found" (pointer_expression "*(bool **)((int)puVar34 + -0x14)" * (cast_expression "(bool **)((int)puVar34 + -0x14)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&found" & identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f536" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "demangled_name(*(Symbol **)((int)puVar34 + -0x10));" (call_expression "demangled_name(*(Symbol **)((int)puVar34 + -0x10))" identifier (argument_list "(*(Symbol **)((int)puVar34 + -0x10))" ( (pointer_expression "*(Symbol **)((int)puVar34 + -0x10)" * (cast_expression "(Symbol **)((int)puVar34 + -0x10)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) (expression_statement "puVar17 = _found;" (assignment_expression "puVar17 = _found" identifier = identifier) ;) (expression_statement "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;" (assignment_expression "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4" (pointer_expression "*(undefined ***)((int)puVar34 + -0x14)" * (cast_expression "(undefined ***)((int)puVar34 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3cde4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 **)((int)puVar34 + -0x10) = puVar17;" (assignment_expression "*(undefined1 **)((int)puVar34 + -0x10) = puVar17" (pointer_expression "*(undefined1 **)((int)puVar34 + -0x10)" * (cast_expression "(undefined1 **)((int)puVar34 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = uVar23;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = uVar23" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)((int)puVar34 + -0x18)" * (cast_expression "(int *)((int)puVar34 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)((int)puVar34 + -0x1c) = local_b8;" (assignment_expression "*(uint *)((int)puVar34 + -0x1c) = local_b8" (pointer_expression "*(uint *)((int)puVar34 + -0x1c)" * (cast_expression "(uint *)((int)puVar34 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x1c)" ( (binary_expression "(int)puVar34 + -0x1c" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)((int)puVar34 + -0x20) = local_a8;" (assignment_expression "*(size_t *)((int)puVar34 + -0x20) = local_a8" (pointer_expression "*(size_t *)((int)puVar34 + -0x20)" * (cast_expression "(size_t *)((int)puVar34 + -0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x20)" ( (binary_expression "(int)puVar34 + -0x20" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;" (assignment_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo" (pointer_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x24)" * (call_expression "(Relocate_info<32,_false> **)((int)puVar34 + -0x24)" (parenthesized_expression "(Relocate_info<32,_false> **)" ( (comma_expression "Relocate_info<32,_false> **" (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x24)" ( (binary_expression "(int)puVar34 + -0x24" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x28) = 0x4f570" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x28)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x28)" ( (binary_expression "(int)puVar34 + -0x28" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10));" (comma_expression "gold_error_at_location<32,_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10))" (binary_expression "gold_error_at_location<32" identifier < number_literal) , (binary_expression "_false>\n                          (*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10))" identifier > (parenthesized_expression "(*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10))" ( (comma_expression "*(gold **)((int)puVar34 + -0x24),\n                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(gold **)((int)puVar34 + -0x24)" * (cast_expression "(gold **)((int)puVar34 + -0x24)" ( (type_descriptor "gold **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x24)" ( (binary_expression "(int)puVar34 + -0x24" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x20),\n                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(Relocate_info<32,_false> **)((int)puVar34 + -0x20)" * (call_expression "(Relocate_info<32,_false> **)((int)puVar34 + -0x20)" (parenthesized_expression "(Relocate_info<32,_false> **)" ( (comma_expression "Relocate_info<32,_false> **" (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x20)" ( (binary_expression "(int)puVar34 + -0x20" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(size_t *)((int)puVar34 + -0x1c)" * (cast_expression "(size_t *)((int)puVar34 + -0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x1c)" ( (binary_expression "(int)puVar34 + -0x1c" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(off_t *)((int)puVar34 + -0x18),\n                           *(char **)((int)puVar34 + -0x10)" (pointer_expression "*(off_t *)((int)puVar34 + -0x18)" * (cast_expression "(off_t *)((int)puVar34 + -0x18)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))))) )))) ;)) (if_statement "if (_found != local_2c) {\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }" if (parenthesized_expression "(_found != local_2c)" ( (binary_expression "_found != local_2c" identifier != identifier) )) (compound_statement "{\n                  *(undefined1 **)((int)puVar34 + -0x14) = _found;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;\n                  operator_delete(*(void **)((int)puVar34 + -0x14));\n                }" { (expression_statement "*(undefined1 **)((int)puVar34 + -0x14) = _found;" (assignment_expression "*(undefined1 **)((int)puVar34 + -0x14) = _found" (pointer_expression "*(undefined1 **)((int)puVar34 + -0x14)" * (cast_expression "(undefined1 **)((int)puVar34 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f586" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }))) (expression_statement "*(bool **)((int)puVar34 + -8) = &is_ordinary;" (assignment_expression "*(bool **)((int)puVar34 + -8) = &is_ordinary" (pointer_expression "*(bool **)((int)puVar34 + -8)" * (cast_expression "(bool **)((int)puVar34 + -8)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&is_ordinary" & identifier)) ;) (expression_statement "*(Elf_Addr **)((int)puVar34 + -0xc) = &value;" (assignment_expression "*(Elf_Addr **)((int)puVar34 + -0xc) = &value" (pointer_expression "*(Elf_Addr **)((int)puVar34 + -0xc)" * (cast_expression "(Elf_Addr **)((int)puVar34 + -0xc)" ( (type_descriptor "Elf_Addr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&value" & identifier)) ;) (expression_statement "*(Value **)((int)puVar34 + -0x10) = local_a4;" (assignment_expression "*(Value **)((int)puVar34 + -0x10) = local_a4" (pointer_expression "*(Value **)((int)puVar34 + -0x10)" * (cast_expression "(Value **)((int)puVar34 + -0x10)" ( (type_descriptor "Value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "uVar22 = gold::" (assignment_expression "uVar22 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8));" (comma_expression "Sized_relobj_file<32,_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8))" identifier > (ERROR "::" : :) (call_expression "symbol_section_and_value\n                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8))" identifier (argument_list "(*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)\n                                  ,*(bool **)((int)puVar34 + -8))" ( (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Address **)((int)puVar34 + -0xc)" * (cast_expression "(Address **)((int)puVar34 + -0xc)" ( (type_descriptor "Address **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool **)((int)puVar34 + -8)" * (cast_expression "(bool **)((int)puVar34 + -8)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (if_statement "if (uVar22 != 0) {\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                *(uint **)((int)puVar34 + -0xc) = &key_symndx;\n                *(uint *)((int)puVar34 + -0x10) = uVar22;\n                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */\n                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;\n                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );\n                if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n                if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }\n              }" { (expression_statement "*(uint **)((int)puVar34 + -0xc) = &key_symndx;" (assignment_expression "*(uint **)((int)puVar34 + -0xc) = &key_symndx" (pointer_expression "*(uint **)((int)puVar34 + -0xc)" * (cast_expression "(uint **)((int)puVar34 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&key_symndx" & identifier)) ;) (expression_statement "*(uint *)((int)puVar34 + -0x10) = uVar22;" (assignment_expression "*(uint *)((int)puVar34 + -0x10) = uVar22" (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f844" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "pRVar27 = gold::" (assignment_expression "pRVar27 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    );" (comma_expression "Sized_relobj_file<32,_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    )" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    )" identifier > (ERROR "::" : :) (call_expression "find_kept_section_object\n                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    )" identifier (argument_list "(*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)\n                                    )" ( (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)puVar34 + -0xc)" * (cast_expression "(uint **)((int)puVar34 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (if_statement "if (key_symndx != 0) {\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }" if (parenthesized_expression "(key_symndx != 0)" ( (binary_expression "key_symndx != 0" identifier != number_literal) )) (compound_statement "{\n                  *(uint *)((int)puVar34 + -0x10) = key_symndx;\n                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;\n                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;\n                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;\n                  uVar23 = gettext();\n                  *(char **)((int)puVar34 + -0x10) = pcVar29;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }" { (expression_statement "*(uint *)((int)puVar34 + -0x10) = key_symndx;" (assignment_expression "*(uint *)((int)puVar34 + -0x10) = key_symndx" (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "pcVar29 = gold::" (assignment_expression "pcVar29 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10));" (comma_expression "Sized_relobj_file<32,_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10))" identifier > (ERROR "::" : :) (call_expression "get_symbol_name\n                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10))" identifier (argument_list "(*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),\n                                       *(uint *)((int)puVar34 + -0x10))" ( (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -0x10)" * (cast_expression "(uint *)((int)puVar34 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;" (assignment_expression "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf" (pointer_expression "*(undefined ***)((int)puVar34 + -0x14)" * (cast_expression "(undefined ***)((int)puVar34 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3cdcf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(char **)((int)puVar34 + -0x10) = pcVar29;" (assignment_expression "*(char **)((int)puVar34 + -0x10) = pcVar29" (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = uVar23;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = uVar23" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::gold_info(*(char **)((int)puVar34 + -0x14));" statement_identifier : (ERROR ":" :) (expression_statement "gold_info(*(char **)((int)puVar34 + -0x14));" (call_expression "gold_info(*(char **)((int)puVar34 + -0x14))" identifier (argument_list "(*(char **)((int)puVar34 + -0x14))" ( (pointer_expression "*(char **)((int)puVar34 + -0x14)" * (cast_expression "(char **)((int)puVar34 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (pRVar27 != (Relobj *)0x0) {\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }" if (parenthesized_expression "(pRVar27 != (Relobj *)0x0)" ( (binary_expression "pRVar27 != (Relobj *)0x0" identifier != (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;\n                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;\n                  uVar23 = gettext();\n                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;\n                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;\n                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;\n                  gold::gold_info(*(char **)((int)puVar34 + -0x14));\n                }" { (expression_statement "pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;" (assignment_expression "pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p" identifier = (field_expression "(pRVar27->super_Object).name_._M_dataplus._M_p" (field_expression "(pRVar27->super_Object).name_._M_dataplus" (field_expression "(pRVar27->super_Object).name_" (parenthesized_expression "(pRVar27->super_Object)" ( (field_expression "pRVar27->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;" (assignment_expression "*(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7" (pointer_expression "*(undefined ***)((int)puVar34 + -0x14)" * (cast_expression "(undefined ***)((int)puVar34 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3cdc7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f876" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(pointer *)((int)puVar34 + -0x10) = pcVar14;" (assignment_expression "*(pointer *)((int)puVar34 + -0x10) = pcVar14" (pointer_expression "*(pointer *)((int)puVar34 + -0x10)" * (cast_expression "(pointer *)((int)puVar34 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = uVar23;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = uVar23" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::gold_info(*(char **)((int)puVar34 + -0x14));" statement_identifier : (ERROR ":" :) (expression_statement "gold_info(*(char **)((int)puVar34 + -0x14));" (call_expression "gold_info(*(char **)((int)puVar34 + -0x14))" identifier (argument_list "(*(char **)((int)puVar34 + -0x14))" ( (pointer_expression "*(char **)((int)puVar34 + -0x14)" * (cast_expression "(char **)((int)puVar34 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) })) (expression_statement "local_b4 = 3;" (assignment_expression "local_b4 = 3" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" else (compound_statement "{\nLAB_0004f5da:\n              local_b4 = 2;\n            }" { (labeled_statement "LAB_0004f5da:\n              local_b4 = 2;" statement_identifier : (expression_statement "local_b4 = 2;" (assignment_expression "local_b4 = 2" identifier = number_literal) ;)) }))) (expression_statement "symval2.u_.value = 0;" (assignment_expression "symval2.u_.value = 0" (field_expression "symval2.u_.value" (field_expression "symval2.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) }))) (expression_statement "puVar33 = (undefined4 *)((int)puVar34 + -4);" (assignment_expression "puVar33 = (undefined4 *)((int)puVar34 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar34 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -4)" ( (binary_expression "(int)puVar34 + -4" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (symval2.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }" if (parenthesized_expression "(symval2.output_symtab_index_ != 0)" ( (binary_expression "symval2.output_symtab_index_ != 0" (field_expression "symval2.output_symtab_index_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;\n            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));\n          }" { (expression_statement "*(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)((int)puVar34 + -0xc)" * (cast_expression "(undefined ***)((int)puVar34 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c71c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x10) = 0x716;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x10) = 0x716" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x14)" * (cast_expression "(int *)((int)puVar34 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x50110;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x50110" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc))" identifier (argument_list "(*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),\n                       *(char **)((int)puVar34 + -0xc))" ( (pointer_expression "*(char **)((int)puVar34 + -0x14)" * (cast_expression "(char **)((int)puVar34 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -0xc)" * (cast_expression "(char **)((int)puVar34 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "symval2.output_symtab_index_ = 0xffffffff;" (assignment_expression "symval2.output_symtab_index_ = 0xffffffff" (field_expression "symval2.output_symtab_index_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }" if (parenthesized_expression "((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8)" ( (binary_expression "(undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8" (cast_expression "(undefined1 *)symval_1.output_symtab_index_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symval_1.output_symtab_index_" identifier . field_identifier)) != (pointer_expression "&symval_1.field_0x8" & (field_expression "symval_1.field_0x8" identifier . field_identifier))) )) (compound_statement "{\n            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;\n            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;\n            operator_delete(*(void **)((int)puVar34 + -0x14));\n          }" { (expression_statement "*(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;" (assignment_expression "*(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_" (pointer_expression "*(uint *)((int)puVar34 + -0x14)" * (cast_expression "(uint *)((int)puVar34 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "symval_1.output_symtab_index_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x18)" ( (binary_expression "(int)puVar34 + -0x18" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar34 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar34 + -0x14))" identifier (argument_list "(*(void **)((int)puVar34 + -0x14))" ( (pointer_expression "*(void **)((int)puVar34 + -0x14)" * (cast_expression "(void **)((int)puVar34 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "local_c4 = &symval2;" (assignment_expression "local_c4 = &symval2" identifier = (pointer_expression "&symval2" & identifier)) ;) (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "local_9c = &symval2;" (assignment_expression "local_9c = &symval2" identifier = (pointer_expression "&symval2" & identifier)) ;) }) (else_clause "else {\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }" else (compound_statement "{\n          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;\n          if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;\n          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;\n          local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;\n          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\n          local_90 = (Symbol_table *)ppSVar12[uVar22];\n          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;\n          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;\n          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;\n          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;\n                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */\n          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;\n          local_90 = (Symbol_table *)\n                     gold::Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));\n          uVar31 = local_90->output_count_;\n          uVar22 = uVar31 - 1;\n          if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }\n          if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }\nLAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;\nLAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;\n          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;\n          if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }\n          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n          if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }\nLAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;\n          symval2.output_dynsym_index_ = 0xffffffff;\n          symval2._8_4_ = 0x80000000;\n          symval2.u_.value = 0;\n          local_c4 = &symval2;\n          puVar33 = puVar34;\n        }" { (if_statement "if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;" if (parenthesized_expression "((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0))" ( (binary_expression "(reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&\n             (local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)" (parenthesized_expression "(reloc_symbol_changes != (Reloc_symbol_changes *)0x0)" ( (binary_expression "reloc_symbol_changes != (Reloc_symbol_changes *)0x0" identifier != (cast_expression "(Reloc_symbol_changes *)0x0" ( (type_descriptor "Reloc_symbol_changes *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)" ( (comma_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8], local_90 != (Symbol_table *)0x0" (subscript_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start[local_a8]" (field_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                         _M_start" (field_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold::Symbol*,_std" (assignment_expression "local_90 = (Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold" identifier = (binary_expression "(Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base<gold" (cast_expression "(Symbol_table *)\n                         (reloc_symbol_changes->vec_).\n                         super__Vector_base" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(reloc_symbol_changes->vec_).\n                         super__Vector_base" (parenthesized_expression "(reloc_symbol_changes->vec_)" ( (field_expression "reloc_symbol_changes->vec_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) , (binary_expression "local_90 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004e238;" goto statement_identifier ;)) (if_statement "if (local_a4 < local_c0->local_symbol_count_) {\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" if (parenthesized_expression "(local_a4 < local_c0->local_symbol_count_)" ( (binary_expression "local_a4 < local_c0->local_symbol_count_" identifier < (field_expression "local_c0->local_symbol_count_" identifier -> field_identifier)) )) (compound_statement "{\nLAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" { (labeled_statement "LAB_00050110:\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;" statement_identifier : (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c70f" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x17f;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x17f" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;" (assignment_expression "*(undefined **)((int)puVar34 + -0x14) = &UNK_00050131" (pointer_expression "*(undefined **)((int)puVar34 + -0x14)" * (cast_expression "(undefined **)((int)puVar34 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00050131" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start;" (field_expression "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_start" (field_expression "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar12 = (local_c0->symbols_).\n                     super__Vector_base<gold" identifier = (binary_expression "(local_c0->symbols_).\n                     super__Vector_base<gold" (field_expression "(local_c0->symbols_).\n                     super__Vector_base" (parenthesized_expression "(local_c0->symbols_)" ( (field_expression "local_c0->symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar22 = (int)local_a4 - local_c0->local_symbol_count_;" (assignment_expression "uVar22 = (int)local_a4 - local_c0->local_symbol_count_" identifier = (binary_expression "(int)local_a4 - local_c0->local_symbol_count_" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "local_c0->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish;" (field_expression "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                     _M_finish" (field_expression "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold::Symbol*,_std" (assignment_expression "local_90 = (Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold" identifier = (binary_expression "(Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base<gold" (cast_expression "(Symbol_table *)\n                     (local_c0->symbols_).\n                     super__Vector_base" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_c0->symbols_).\n                     super__Vector_base" (parenthesized_expression "(local_c0->symbols_)" ( (field_expression "local_c0->symbols_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" if (parenthesized_expression "((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22)" ( (binary_expression "(uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22" (call_expression "(uint)((int)local_90 - (int)ppSVar12 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - (int)ppSVar12 >> 2)" ( (binary_expression "(int)local_90 - (int)ppSVar12 >> 2" (binary_expression "(int)local_90 - (int)ppSVar12" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppSVar12" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c6c2" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x5018a" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_90 = (Symbol_table *)ppSVar12[uVar22];" (assignment_expression "local_90 = (Symbol_table *)ppSVar12[uVar22]" identifier = (cast_expression "(Symbol_table *)ppSVar12[uVar22]" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppSVar12[uVar22]" identifier [ identifier ]))) ;) (if_statement "if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;" if (parenthesized_expression "(local_90 == (Symbol_table *)0x0)" ( (binary_expression "local_90 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050110;" goto statement_identifier ;)) (if_statement "if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;" if (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0x100000)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0x100000" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e238;" goto statement_identifier ;)) (expression_statement "*(Symbol_table **)((int)puVar34 + -0xc) = local_90;" (assignment_expression "*(Symbol_table **)((int)puVar34 + -0xc) = local_90" (pointer_expression "*(Symbol_table **)((int)puVar34 + -0xc)" * (cast_expression "(Symbol_table **)((int)puVar34 + -0xc)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;" (assignment_expression "*(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab" (pointer_expression "*(Symbol_table **)((int)puVar34 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar34 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "relinfo->symtab" identifier -> field_identifier)) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x4f795" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_90 = (Symbol_table *)\n                     gold::" (assignment_expression "local_90 = (Symbol_table *)\n                     gold" identifier = (cast_expression "(Symbol_table *)\n                     gold" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "Symbol_table::resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc));" (call_expression "resolve_forwards\n                               (*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc))" identifier (argument_list "(*(Symbol_table **)((int)puVar34 + -0x10),\n                                *(Symbol **)((int)puVar34 + -0xc))" ( (pointer_expression "*(Symbol_table **)((int)puVar34 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar34 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol **)((int)puVar34 + -0xc)" * (cast_expression "(Symbol **)((int)puVar34 + -0xc)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "uVar31 = local_90->output_count_;" (assignment_expression "uVar31 = local_90->output_count_" identifier = (field_expression "local_90->output_count_" identifier -> field_identifier)) ;) (expression_statement "uVar22 = uVar31 - 1;" (assignment_expression "uVar22 = uVar31 - 1" identifier = (binary_expression "uVar31 - 1" identifier - number_literal)) ;) (if_statement "if (uVar22 < 0xfffffffe) {\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }" if (parenthesized_expression "(uVar22 < 0xfffffffe)" ( (binary_expression "uVar22 < 0xfffffffe" identifier < number_literal) )) (compound_statement "{\n            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }\n            goto LAB_0004f6b0;\n          }" { (if_statement "if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }" if (parenthesized_expression "((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe))" ( (binary_expression "(symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)" (parenthesized_expression "(symval.output_symtab_index_ != 0)" ( (binary_expression "symval.output_symtab_index_ != 0" (field_expression "symval.output_symtab_index_" identifier . field_identifier) != number_literal) )) && (parenthesized_expression "(symval.output_symtab_index_ != 0xfffffffe)" ( (binary_expression "symval.output_symtab_index_ != 0xfffffffe" (field_expression "symval.output_symtab_index_" identifier . field_identifier) != number_literal) ))) )) (compound_statement "{\n              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;\n              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;\n              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */\n              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));\n            }" { (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c715" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x70c;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x70c" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x500a1" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                         *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (goto_statement "goto LAB_0004f6b0;" goto statement_identifier ;) })) (if_statement "if (symval.output_symtab_index_ != 0) {\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" if (parenthesized_expression "(symval.output_symtab_index_ != 0)" ( (binary_expression "symval.output_symtab_index_ != 0" (field_expression "symval.output_symtab_index_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;\n            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;\n                    /* WARNING: Subroutine does not return */\n            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)((int)puVar34 + -8)" * (cast_expression "(undefined ***)((int)puVar34 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_94 + -0x3c71c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar34 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)((int)puVar34 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar34 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)((int)puVar34 + -0x10)" * (cast_expression "(int *)((int)puVar34 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;" (assignment_expression "*(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9" (pointer_expression "*(undefined **)((int)puVar34 + -0x14)" * (cast_expression "(undefined **)((int)puVar34 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_0004f7d9" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" identifier (argument_list "(*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),\n                       *(char **)((int)puVar34 + -8))" ( (pointer_expression "*(char **)((int)puVar34 + -0x10)" * (cast_expression "(char **)((int)puVar34 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar34 + -0xc)" * (cast_expression "(int *)((int)puVar34 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar34 + -8)" * (cast_expression "(char **)((int)puVar34 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (labeled_statement "LAB_0004e24d:\n          symval.output_symtab_index_ = 0xffffffff;" statement_identifier : (expression_statement "symval.output_symtab_index_ = 0xffffffff;" (assignment_expression "symval.output_symtab_index_ = 0xffffffff" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = number_literal) ;)) (labeled_statement "LAB_0004e254:\n          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;" statement_identifier : (expression_statement "symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;" (assignment_expression "symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count" (field_expression "symval.u_" identifier . field_identifier) = (field_expression "(anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count" (field_expression "(anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h" (call_expression "(anon_union_4_2_6a937475_for_u_)(local_90->table_)" (parenthesized_expression "(anon_union_4_2_6a937475_for_u_)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;)) (expression_statement "bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;" (assignment_expression "bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf" identifier = (binary_expression "(byte)(local_90->table_)._M_h._M_bucket_count & 0xf" (field_expression "(byte)(local_90->table_)._M_h._M_bucket_count" (field_expression "(byte)(local_90->table_)._M_h" (call_expression "(byte)(local_90->table_)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) & number_literal)) ;) (if_statement "if (bVar21 == 6) {\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }\n          else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }" if (parenthesized_expression "(bVar21 == 6)" ( (binary_expression "bVar21 == 6" identifier == number_literal) )) (compound_statement "{\n            symval._8_4_ = symval._8_4_ | 0x20000000;\n          }" { (expression_statement "symval._8_4_ = symval._8_4_ | 0x20000000;" (assignment_expression "symval._8_4_ = symval._8_4_ | 0x20000000" (field_expression "symval._8_4_" identifier . field_identifier) = (binary_expression "symval._8_4_ | 0x20000000" (field_expression "symval._8_4_" identifier . field_identifier) | number_literal)) ;) }) (else_clause "else if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }" else (if_statement "if (bVar21 == 10) {\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }" if (parenthesized_expression "(bVar21 == 10)" ( (binary_expression "bVar21 == 10" identifier == number_literal) )) (compound_statement "{\n            symval._8_4_ = symval._8_4_ | 0x40000000;\n          }" { (expression_statement "symval._8_4_ = symval._8_4_ | 0x40000000;" (assignment_expression "symval._8_4_ = symval._8_4_ | 0x40000000" (field_expression "symval._8_4_" identifier . field_identifier) = (binary_expression "symval._8_4_ | 0x40000000" (field_expression "symval._8_4_" identifier . field_identifier) | number_literal)) ;) })))) (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((char)bVar21 < '\0') {\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }\n          else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }" if (parenthesized_expression "((char)bVar21 < '\0')" ( (binary_expression "(char)bVar21 < '\0'" (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            sVar15 = (local_90->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n          }" { (expression_statement "sVar15 = (local_90->table_)._M_h._M_bucket_count;" (assignment_expression "sVar15 = (local_90->table_)._M_h._M_bucket_count" identifier = (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((sVar15 & 0x70000) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }\n            else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }" if (parenthesized_expression "((sVar15 & 0x70000) == 0)" ( (binary_expression "(sVar15 & 0x70000) == 0" (parenthesized_expression "(sVar15 & 0x70000)" ( (binary_expression "sVar15 & 0x70000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }" { (if_statement "if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }" if (parenthesized_expression "((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0))" ( (binary_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 ((bVar21 & 0x20) != 0)" (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) == number_literal) )) && (parenthesized_expression "((bVar21 & 0x20) != 0)" ( (binary_expression "(bVar21 & 0x20) != 0" (parenthesized_expression "(bVar21 & 0x20)" ( (binary_expression "bVar21 & 0x20" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &symval;\n                goto LAB_0004f331;\n              }" { (labeled_statement "LAB_0004f318:\n                local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "local_9c = &symval;" (assignment_expression "local_9c = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (goto_statement "goto LAB_0004f331;" goto statement_identifier ;) })) (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "local_9c = &symval;" (assignment_expression "local_9c = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) }) (else_clause "else {\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }" else (compound_statement "{\n              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;\n              local_ac = &symval;\n              uVar22 = *(uint *)(prelocs + 4);\n              local_9c = &symval;\n            }" { (if_statement "if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;" if (parenthesized_expression "((sVar15 & 0x70000) == 0x40000)" ( (binary_expression "(sVar15 & 0x70000) == 0x40000" (parenthesized_expression "(sVar15 & 0x70000)" ( (binary_expression "sVar15 & 0x70000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004f318;" goto statement_identifier ;)) (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "local_9c = &symval;" (assignment_expression "local_9c = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) }))) }) (else_clause "else {\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }" else (compound_statement "{\n            local_ac = &symval;\n            local_9c = &symval;\n            uVar22 = *(uint *)(prelocs + 4);\n          }" { (expression_statement "local_ac = &symval;" (assignment_expression "local_ac = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (expression_statement "local_9c = &symval;" (assignment_expression "local_9c = &symval" identifier = (pointer_expression "&symval" & identifier)) ;) (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0004e2a0:\n          symval2.output_symtab_index_ = 0;" statement_identifier : (expression_statement "symval2.output_symtab_index_ = 0;" (assignment_expression "symval2.output_symtab_index_ = 0" (field_expression "symval2.output_symtab_index_" identifier . field_identifier) = number_literal) ;)) (expression_statement "symval2.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval2.output_dynsym_index_ = 0xffffffff" (field_expression "symval2.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval2._8_4_ = 0x80000000;" (assignment_expression "symval2._8_4_ = 0x80000000" (field_expression "symval2._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval2.u_.value = 0;" (assignment_expression "symval2.u_.value = 0" (field_expression "symval2.u_.value" (field_expression "symval2.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_c4 = &symval2;" (assignment_expression "local_c4 = &symval2" identifier = (pointer_expression "&symval2" & identifier)) ;) (expression_statement "puVar33 = puVar34;" (assignment_expression "puVar33 = puVar34" identifier = identifier) ;) }))) (expression_statement "ppuVar32 = local_94;" (assignment_expression "ppuVar32 = local_94" identifier = identifier) ;) (expression_statement "local_b0 = uVar22 & 0xff;" (assignment_expression "local_b0 = uVar22 & 0xff" identifier = (binary_expression "uVar22 & 0xff" identifier & number_literal)) ;) (expression_statement "local_c8 = address + local_b8;" (assignment_expression "local_c8 = address + local_b8" identifier = (binary_expression "address + local_b8" identifier + identifier)) ;) (if_statement "if (((int)local_b8 < 0) || (view_size <= local_b8)) {\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }\n        else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }" if (parenthesized_expression "(((int)local_b8 < 0) || (view_size <= local_b8))" ( (binary_expression "((int)local_b8 < 0) || (view_size <= local_b8)" (parenthesized_expression "((int)local_b8 < 0)" ( (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(view_size <= local_b8)" ( (binary_expression "view_size <= local_b8" identifier <= identifier) ))) )) (compound_statement "{\n          local_a4 = (Value *)0x0;\n          rel.p_ = (Rel_data<32> *)prelocs;\nLAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;\n          puVar33[-4] = (int)local_94 + -0xf3a7f;\n          puVar33[-5] = 0x4f1d7;\n          uVar23 = gettext();\n          puVar33[-3] = local_b8;\n          puVar33[-4] = uVar23;\n          puVar33[-5] = (int)local_b8 >> 0x1f;\n          puVar33[-6] = local_b8;\n          puVar33[-7] = local_a8;\n          puVar33[-8] = relinfo;\n          puVar33[-9] = 0x4f1f4;\n          gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n        }" { (expression_statement "local_a4 = (Value *)0x0;" (assignment_expression "local_a4 = (Value *)0x0" identifier = (cast_expression "(Value *)0x0" ( (type_descriptor "Value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "rel.p_ = (Rel_data<32> *)prelocs;" (assignment_expression "rel.p_ = (Rel_data<32> *)prelocs" (field_expression "rel.p_" identifier . field_identifier) = (parenthesized_expression "(Rel_data<32> *)prelocs" ( (binary_expression "Rel_data<32> *)prelocs" (binary_expression "Rel_data<32" identifier < number_literal) > (pointer_expression "*)prelocs" * (ERROR ")" )) identifier)) ))) ;) (labeled_statement "LAB_0004f1c0:\n          rel.p_ = (Rel_data<32> *)prelocs;" statement_identifier : (expression_statement "rel.p_ = (Rel_data<32> *)prelocs;" (assignment_expression "rel.p_ = (Rel_data<32> *)prelocs" (field_expression "rel.p_" identifier . field_identifier) = (parenthesized_expression "(Rel_data<32> *)prelocs" ( (binary_expression "Rel_data<32> *)prelocs" (binary_expression "Rel_data<32" identifier < number_literal) > (pointer_expression "*)prelocs" * (ERROR ")" )) identifier)) ))) ;)) (expression_statement "puVar33[-4] = (int)local_94 + -0xf3a7f;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf3a7f" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf3a7f" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "puVar33[-5] = 0x4f1d7;" (assignment_expression "puVar33[-5] = 0x4f1d7" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar33[-3] = local_b8;" (assignment_expression "puVar33[-3] = local_b8" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = uVar23;" (assignment_expression "puVar33[-4] = uVar23" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = (int)local_b8 >> 0x1f;" (assignment_expression "puVar33[-5] = (int)local_b8 >> 0x1f" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar33[-6] = local_b8;" (assignment_expression "puVar33[-6] = local_b8" (subscript_expression "puVar33[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-7] = local_a8;" (assignment_expression "puVar33[-7] = local_a8" (subscript_expression "puVar33[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-8] = relinfo;" (assignment_expression "puVar33[-8] = relinfo" (subscript_expression "puVar33[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-9] = 0x4f1f4;" (assignment_expression "puVar33[-9] = 0x4f1f4" (subscript_expression "puVar33[-9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);" (comma_expression "gold_error_at_location<32,_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" (binary_expression "gold_error_at_location<32" identifier < number_literal) , (binary_expression "_false>\n                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" identifier > (parenthesized_expression "((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" ( (comma_expression "(gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" (cast_expression "(gold *)puVar33[-8]" ( (type_descriptor "gold *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-8]" identifier [ number_literal ])) , (parenthesized_expression "(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" ( (comma_expression "Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (binary_expression "Relocate_info<32" identifier < number_literal) , (comma_expression "_false> *)puVar33[-7],puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (binary_expression "_false> *)puVar33[-7]" identifier > (pointer_expression "*)puVar33[-7]" * (ERROR ")" )) (subscript_expression "puVar33[-7]" identifier [ number_literal ]))) , (comma_expression "puVar33[-6],\n                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (subscript_expression "puVar33[-6]" identifier [ number_literal ]) , (comma_expression "*(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (pointer_expression "*(off_t *)(puVar33 + -5)" * (cast_expression "(off_t *)(puVar33 + -5)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -5)" ( (binary_expression "puVar33 + -5" identifier + number_literal) )))) , (cast_expression "(char *)puVar33[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-3]" identifier [ number_literal ])))))) ))) )))) ;)) }) (else_clause "else {\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }" else (compound_statement "{\n          local_a4 = (Value *)(view + local_b8);\n          rel.p_ = (Rel_data<32> *)prelocs;\n          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;\n          symval_1.output_symtab_index_ = 0;\n          symval_1.output_dynsym_index_ = 0xffffffff;\n          local_bc = relinfo->object;\n          symval_1._8_4_ = 0x80000000;\n          symval_1.u_.value = 0;\n          if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    } while (reloc_count != local_a8);\n  }" { (expression_statement "local_a4 = (Value *)(view + local_b8);" (assignment_expression "local_a4 = (Value *)(view + local_b8)" identifier = (cast_expression "(Value *)(view + local_b8)" ( (type_descriptor "Value *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(view + local_b8)" ( (binary_expression "view + local_b8" identifier + identifier) )))) ;) (expression_statement "rel.p_ = (Rel_data<32> *)prelocs;" (assignment_expression "rel.p_ = (Rel_data<32> *)prelocs" (field_expression "rel.p_" identifier . field_identifier) = (parenthesized_expression "(Rel_data<32> *)prelocs" ( (binary_expression "Rel_data<32> *)prelocs" (binary_expression "Rel_data<32" identifier < number_literal) > (pointer_expression "*)prelocs" * (ERROR ")" )) identifier)) ))) ;) (if_statement "if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;" if (parenthesized_expression "(local_a4 == (Value *)0x0)" ( (binary_expression "local_a4 == (Value *)0x0" identifier == (cast_expression "(Value *)0x0" ( (type_descriptor "Value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f1c0;" goto statement_identifier ;)) (expression_statement "symval_1.output_symtab_index_ = 0;" (assignment_expression "symval_1.output_symtab_index_ = 0" (field_expression "symval_1.output_symtab_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval_1.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval_1.output_dynsym_index_ = 0xffffffff" (field_expression "symval_1.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_bc = relinfo->object;" (assignment_expression "local_bc = relinfo->object" identifier = (field_expression "relinfo->object" identifier -> field_identifier)) ;) (expression_statement "symval_1._8_4_ = 0x80000000;" (assignment_expression "symval_1._8_4_ = 0x80000000" (field_expression "symval_1._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval_1.u_.value = 0;" (assignment_expression "symval_1.u_.value = 0" (field_expression "symval_1.u_.value" (field_expression "symval_1.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (local_90 == (Symbol_table *)0x0) {\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }\n          else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    }" if (parenthesized_expression "(local_90 == (Symbol_table *)0x0)" ( (binary_expression "local_90 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }\n            local_a0 = &symval_1;\n            if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }\nLAB_0004e736:\n            local_a0 = &symval_1;\n            puVar33[-4] = local_94 + -0x3ceb6;\n            puVar33[-5] = 0x4e847;\n            uVar23 = gettext();\n            puVar33[-3] = local_b0;\n            puVar33[-4] = uVar23;\n            EVar5 = (rel.p_)->r_offset;\n            puVar33[-5] = 0;\n            puVar33[-6] = EVar5;\n            puVar33[-7] = local_a8;\n            puVar33[-8] = relinfo;\n            puVar33[-9] = 0x4e867;\n            gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);\n          }" { (if_statement "if ((local_9c->field_0xb & 0x40) != 0) {\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }" if (parenthesized_expression "((local_9c->field_0xb & 0x40) != 0)" ( (binary_expression "(local_9c->field_0xb & 0x40) != 0" (parenthesized_expression "(local_9c->field_0xb & 0x40)" ( (binary_expression "local_9c->field_0xb & 0x40" (field_expression "local_9c->field_0xb" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar22 = *(uint *)(prelocs + 4);\n              local_a0 = &symval_1;\n              puVar33[-3] = uVar22 >> 8;\n              puVar33[-4] = local_bc;\n                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */\n              puVar33[-5] = 0x4f227;\n              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);\n              if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }\n            }" { (expression_statement "uVar22 = *(uint *)(prelocs + 4);" (assignment_expression "uVar22 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-3] = uVar22 >> 8;" (assignment_expression "puVar33[-3] = uVar22 >> 8" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = (binary_expression "uVar22 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar33[-4] = local_bc;" (assignment_expression "puVar33[-4] = local_bc" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "puVar33[-5] = 0x4f227;" (assignment_expression "puVar33[-5] = 0x4f227" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);" (comma_expression "Sized_relobj_file<32,_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3])" identifier > (ERROR "::" : :) (call_expression "local_has_plt_offset\n                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3])" identifier (argument_list "((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3])" ( (parenthesized_expression "(Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3])" ( (comma_expression "Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)puVar33[-4],puVar33[-3]" (binary_expression "_false> *)puVar33[-4]" identifier > (pointer_expression "*)puVar33[-4]" * (ERROR ")" )) (subscript_expression "puVar33[-4]" identifier [ number_literal ]))) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]))) )) ))))) ;) (if_statement "if (bVar18) {\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n                pOVar9 = this->plt_;\n                if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;\n                local_98 = *(int *)&pOVar9->field_0x8;\n                uVar31 = pOVar9->count_;\n                iVar28 = pOVar9->plt_eh_frame_cie_size;\n                puVar33[-4] = pOVar9;\n                local_a0 = &symval_1;\n                pcVar8 = *(code **)(iVar28 + 100);\n                puVar33[-5] = 0x4f274;\n                iVar28 = (*pcVar8)();\n                uVar31 = (uVar31 + 1) * iVar28;\n                bVar18 = CARRY4(uVar31,(uint)local_9c);\n                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);\n                local_98 = local_98 + (uint)bVar18;\n                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;\n                puVar33[-3] = uVar22 >> 8;\n                puVar33[-4] = local_bc;\n                local_a0 = &symval_1;\n                p_Var3 = pp_Var2[0x2a];\n                puVar33[-5] = 0x4f2ae;\n                iVar28 = (*p_Var3)();\n                symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);\n                local_9c = &symval_1;\n              }" { (expression_statement "pOVar9 = this->plt_;" (assignment_expression "pOVar9 = this->plt_" identifier = (field_expression "this->plt_" identifier -> field_identifier)) ;) (if_statement "if (pOVar9 == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }" if (parenthesized_expression "(pOVar9 == (Output_data_plt_i386 *)0x0)" ( (binary_expression "pOVar9 == (Output_data_plt_i386 *)0x0" identifier == (cast_expression "(Output_data_plt_i386 *)0x0" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50363;\n                  plt_section((Target_i386 *)*puVar33);\n                }" { (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) comment comment (expression_statement "puVar33[-1] = 0x50363;" (assignment_expression "puVar33[-1] = 0x50363" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plt_section((Target_i386 *)*puVar33);" (call_expression "plt_section((Target_i386 *)*puVar33)" identifier (argument_list "((Target_i386 *)*puVar33)" ( (cast_expression "(Target_i386 *)*puVar33" ( (type_descriptor "Target_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier)) ))) ;) })) (if_statement "if ((pOVar9->field_0x1c & 1) == 0) {\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }" if (parenthesized_expression "((pOVar9->field_0x1c & 1) == 0)" ( (binary_expression "(pOVar9->field_0x1c & 1) == 0" (parenthesized_expression "(pOVar9->field_0x1c & 1)" ( (binary_expression "pOVar9->field_0x1c & 1" (field_expression "pOVar9->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  puVar33[-1] = ppuVar32;\n                  puVar33[-2] = local_94 + -0x3c624;\n                  puVar33[-3] = 0xc5;\n                  puVar33[-4] = (int)local_94 + -0xf3ca3;\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                  puVar33[-5] = &LAB_0005038b;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }" { (expression_statement "puVar33[-1] = ppuVar32;" (assignment_expression "puVar33[-1] = ppuVar32" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-2] = local_94 + -0x3c624;" (assignment_expression "puVar33[-2] = local_94 + -0x3c624" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c624" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0xc5;" (assignment_expression "puVar33[-3] = 0xc5" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf3ca3;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf3ca3" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf3ca3" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) comment (expression_statement "puVar33[-5] = &LAB_0005038b;" (assignment_expression "puVar33[-5] = &LAB_0005038b" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = (pointer_expression "&LAB_0005038b" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;" (assignment_expression "local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4" identifier = (binary_expression "*(Symbol_value<32> **)&pOVar9->field_0x4" (pointer_expression "*(Symbol_value<32> **)" * (parenthesized_expression "(Symbol_value<32> **)" ( (binary_expression "Symbol_value<32> **" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) ))) & (field_expression "pOVar9->field_0x4" identifier -> field_identifier))) ;) (expression_statement "local_98 = *(int *)&pOVar9->field_0x8;" (assignment_expression "local_98 = *(int *)&pOVar9->field_0x8" identifier = (pointer_expression "*(int *)&pOVar9->field_0x8" * (cast_expression "(int *)&pOVar9->field_0x8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->field_0x8" & (field_expression "pOVar9->field_0x8" identifier -> field_identifier))))) ;) (expression_statement "uVar31 = pOVar9->count_;" (assignment_expression "uVar31 = pOVar9->count_" identifier = (field_expression "pOVar9->count_" identifier -> field_identifier)) ;) (expression_statement "iVar28 = pOVar9->plt_eh_frame_cie_size;" (assignment_expression "iVar28 = pOVar9->plt_eh_frame_cie_size" identifier = (field_expression "pOVar9->plt_eh_frame_cie_size" identifier -> field_identifier)) ;) (expression_statement "puVar33[-4] = pOVar9;" (assignment_expression "puVar33[-4] = pOVar9" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "pcVar8 = *(code **)(iVar28 + 100);" (assignment_expression "pcVar8 = *(code **)(iVar28 + 100)" identifier = (pointer_expression "*(code **)(iVar28 + 100)" * (cast_expression "(code **)(iVar28 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 100)" ( (binary_expression "iVar28 + 100" identifier + number_literal) ))))) ;) (expression_statement "puVar33[-5] = 0x4f274;" (assignment_expression "puVar33[-5] = 0x4f274" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar28 = (*pcVar8)();" (assignment_expression "iVar28 = (*pcVar8)()" identifier = (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar31 = (uVar31 + 1) * iVar28;" (assignment_expression "uVar31 = (uVar31 + 1) * iVar28" identifier = (binary_expression "(uVar31 + 1) * iVar28" (parenthesized_expression "(uVar31 + 1)" ( (binary_expression "uVar31 + 1" identifier + number_literal) )) * identifier)) ;) (expression_statement "bVar18 = CARRY4(uVar31,(uint)local_9c);" (assignment_expression "bVar18 = CARRY4(uVar31,(uint)local_9c)" identifier = (call_expression "CARRY4(uVar31,(uint)local_9c)" identifier (argument_list "(uVar31,(uint)local_9c)" ( identifier , (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);" (assignment_expression "local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c)" identifier = (call_expression "(Symbol_value<32> *)(uVar31 + (int)local_9c)" (parenthesized_expression "(Symbol_value<32> *)" ( (binary_expression "Symbol_value<32> *" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "(uVar31 + (int)local_9c)" ( (binary_expression "uVar31 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_98 = local_98 + (uint)bVar18;" (assignment_expression "local_98 = local_98 + (uint)bVar18" identifier = (binary_expression "local_98 + (uint)bVar18" identifier + (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object;" (assignment_expression "pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object" identifier = (field_expression "(local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object" (field_expression "(local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(local_bc->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(local_bc->super_Sized_relobj<32,_false>)" ( (comma_expression "local_bc->super_Sized_relobj<32,_false" (binary_expression "local_bc->super_Sized_relobj<32" (field_expression "local_bc->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "puVar33[-3] = uVar22 >> 8;" (assignment_expression "puVar33[-3] = uVar22 >> 8" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = (binary_expression "uVar22 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar33[-4] = local_bc;" (assignment_expression "puVar33[-4] = local_bc" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "p_Var3 = pp_Var2[0x2a];" (assignment_expression "p_Var3 = pp_Var2[0x2a]" identifier = (subscript_expression "pp_Var2[0x2a]" identifier [ number_literal ])) ;) (expression_statement "puVar33[-5] = 0x4f2ae;" (assignment_expression "puVar33[-5] = 0x4f2ae" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar28 = (*p_Var3)();" (assignment_expression "iVar28 = (*p_Var3)()" identifier = (call_expression "(*p_Var3)()" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);" (assignment_expression "symval_1.u_.merged_symbol_value =\n                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c)" (field_expression "symval_1.u_.merged_symbol_value" (field_expression "symval_1.u_" identifier . field_identifier) . field_identifier) = (call_expression "(Merged_symbol_value<32> *)(iVar28 + (int)local_9c)" (parenthesized_expression "(Merged_symbol_value<32> *)" ( (binary_expression "Merged_symbol_value<32> *" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "(iVar28 + (int)local_9c)" ( (binary_expression "iVar28 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_9c = &symval_1;" (assignment_expression "local_9c = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) })) })) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (if_statement "if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }" if (parenthesized_expression "(local_b0 < 0xfc)" ( (binary_expression "local_b0 < 0xfc" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))" ( (pointer_expression "*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" * (cast_expression "(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[local_b0 - 0x3cb99] + (int)local_94)" ( (binary_expression "local_94[local_b0 - 0x3cb99] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cb99]" identifier [ (binary_expression "local_b0 - 0x3cb99" identifier - number_literal) ]) + (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0004e736:\n            local_a0 = &symval_1;" statement_identifier : (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;)) (expression_statement "puVar33[-4] = local_94 + -0x3ceb6;" (assignment_expression "puVar33[-4] = local_94 + -0x3ceb6" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3ceb6" identifier + number_literal)) ;) (expression_statement "puVar33[-5] = 0x4e847;" (assignment_expression "puVar33[-5] = 0x4e847" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar33[-3] = local_b0;" (assignment_expression "puVar33[-3] = local_b0" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = uVar23;" (assignment_expression "puVar33[-4] = uVar23" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "EVar5 = (rel.p_)->r_offset;" (assignment_expression "EVar5 = (rel.p_)->r_offset" identifier = (field_expression "(rel.p_)->r_offset" (parenthesized_expression "(rel.p_)" ( (field_expression "rel.p_" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "puVar33[-5] = 0;" (assignment_expression "puVar33[-5] = 0" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-6] = EVar5;" (assignment_expression "puVar33[-6] = EVar5" (subscript_expression "puVar33[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-7] = local_a8;" (assignment_expression "puVar33[-7] = local_a8" (subscript_expression "puVar33[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-8] = relinfo;" (assignment_expression "puVar33[-8] = relinfo" (subscript_expression "puVar33[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-9] = 0x4e867;" (assignment_expression "puVar33[-9] = 0x4e867" (subscript_expression "puVar33[-9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);" (comma_expression "gold_error_at_location<32,_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" (binary_expression "gold_error_at_location<32" identifier < number_literal) , (binary_expression "_false>\n                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" identifier > (parenthesized_expression "((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" ( (comma_expression "(gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" (cast_expression "(gold *)puVar33[-8]" ( (type_descriptor "gold *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-8]" identifier [ number_literal ])) , (parenthesized_expression "(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3])" ( (comma_expression "Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (binary_expression "Relocate_info<32" identifier < number_literal) , (comma_expression "_false> *)puVar33[-7],puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (binary_expression "_false> *)puVar33[-7]" identifier > (pointer_expression "*)puVar33[-7]" * (ERROR ")" )) (subscript_expression "puVar33[-7]" identifier [ number_literal ]))) , (comma_expression "puVar33[-6],\n                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (subscript_expression "puVar33[-6]" identifier [ number_literal ]) , (comma_expression "*(off_t *)(puVar33 + -5),(char *)puVar33[-3]" (pointer_expression "*(off_t *)(puVar33 + -5)" * (cast_expression "(off_t *)(puVar33 + -5)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -5)" ( (binary_expression "puVar33 + -5" identifier + number_literal) )))) , (cast_expression "(char *)puVar33[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-3]" identifier [ number_literal ])))))) ))) )))) ;)) }) (else_clause "else {\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    }" else (compound_statement "{\n            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }\n            puVar33[-3] = 1;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea09;\n            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n            pSVar6 = local_90;\n            if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }\n            puVar33[-3] = 0;\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea2e;\n            bVar18 = gold::Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));\n            if (!bVar18) goto LAB_0004f070;\n            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;\n            if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }\n            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;\nLAB_0004ea6a:\n            puVar33[-4] = local_90;\n            local_a0 = &symval_1;\n            puVar33[-5] = 0x4ea81;\n            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n            if (bVar18) goto LAB_0004f070;\n            local_a0 = &symval_1;\n            puVar33[-4] = output_section;\n            puVar33[-5] = 0x4eab3;\n            bVar18 = Relocate::should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);\n            pVVar16 = local_a4;\n            if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      prelocs = prelocs + 8;\n    }" { (if_statement "if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }" if (parenthesized_expression "((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1))" ( (binary_expression "(((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)" (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0xf) != 10)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0xf) != 10" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0xf)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0xf" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(local_b0 != 1)" ( (binary_expression "local_b0 != 1" identifier != number_literal) ))) )) (compound_statement "{\n              uVar31 = 0;\n              uVar22 = local_b0 - 1;\n              if (uVar22 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }\nLAB_0004e466:\n              local_a0 = &symval_1;\n              if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }\n              goto LAB_0004e736;\n            }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = local_b0 - 1;" (assignment_expression "uVar22 = local_b0 - 1" identifier = (binary_expression "local_b0 - 1" identifier - number_literal)) ;) (if_statement "if (uVar22 < 0x2b) goto LAB_0004f078;" if (parenthesized_expression "(uVar22 < 0x2b)" ( (binary_expression "uVar22 < 0x2b" identifier < number_literal) )) (goto_statement "goto LAB_0004f078;" goto statement_identifier ;)) (labeled_statement "LAB_0004e381:\n              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }" statement_identifier : (if_statement "if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }" if (parenthesized_expression "(*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff)" ( (binary_expression "*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff" (pointer_expression "*(uint *)((int)&local_90->dynamic_offset_ + 4)" * (cast_expression "(uint *)((int)&local_90->dynamic_offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_90->dynamic_offset_ + 4)" ( (binary_expression "(int)&local_90->dynamic_offset_ + 4" (cast_expression "(int)&local_90->dynamic_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->dynamic_offset_" & (field_expression "local_90->dynamic_offset_" identifier -> field_identifier))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }\nLAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }\n                local_a0 = &symval_1;\n                puVar33[-1] = 0x4eba2;\n                uVar41 = Output_data_plt_i386::address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);\n                symval_1.u_.value = (Value)uVar41;\n                local_9c = &symval_1;\n              }" { (if_statement "if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }" if (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0xf) != 10)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0xf) != 10" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0xf)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0xf" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  puVar33[-3] = uVar31;\n                  puVar33[-4] = local_90;\n                  local_a0 = &symval_1;\n                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */\n                  puVar33[-5] = 0x4e3c4;\n                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);\n                  if (bVar18) goto LAB_0004e466;\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                  bVar19 = bVar21 & 7;\n                  if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }\n                }" { (expression_statement "puVar33[-3] = uVar31;" (assignment_expression "puVar33[-3] = uVar31" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = local_90;" (assignment_expression "puVar33[-4] = local_90" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) comment (expression_statement "puVar33[-5] = 0x4e3c4;" (assignment_expression "puVar33[-5] = 0x4e3c4" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (labeled_statement "Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);" (call_expression "needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3])" identifier (argument_list "((Symbol *)puVar33[-4],puVar33[-3])" ( (cast_expression "(Symbol *)puVar33[-4]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) ))) ;)) (if_statement "if (bVar18) goto LAB_0004e466;" if (parenthesized_expression "(bVar18)" ( identifier )) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;)) (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 2" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar19 = bVar21 & 7;" (assignment_expression "bVar19 = bVar21 & 7" identifier = (binary_expression "bVar21 & 7" identifier & number_literal)) ;) (if_statement "if (((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)) {\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }" if (parenthesized_expression "(((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0))" ( (binary_expression "((bVar21 & 7) != 0) ||\n                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)" (parenthesized_expression "((bVar21 & 7) != 0)" ( (binary_expression "(bVar21 & 7) != 0" (parenthesized_expression "(bVar21 & 7)" ( (binary_expression "bVar21 & 7" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0)" ( (binary_expression "((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1) == 0" (parenthesized_expression "((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1)" ( (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage & 1" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_end_of_storage" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base<gold" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3].\n                             super__Vector_base" (subscript_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_[3]" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment\n                             ->output_lists_" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment" (call_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) ))) -> field_identifier) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    ppuVar32 = local_94 + 0xbc;\n                    if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }\n                    if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;\n                  }" { (expression_statement "ppuVar32 = local_94 + 0xbc;" (assignment_expression "ppuVar32 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (if_statement "if (*(int *)(*ppuVar32 + 8) == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }" if (parenthesized_expression "(*(int *)(*ppuVar32 + 8) == 0)" ( (binary_expression "*(int *)(*ppuVar32 + 8) == 0" (pointer_expression "*(int *)(*ppuVar32 + 8)" * (cast_expression "(int *)(*ppuVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar32 + 8)" ( (binary_expression "*ppuVar32 + 8" (pointer_expression "*ppuVar32" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                      local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */\n                      puVar33[-5] = 0x501dc;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }" { (expression_statement "puVar33[-2] = local_94 + -0x3c69e;" (assignment_expression "puVar33[-2] = local_94 + -0x3c69e" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0x5c;" (assignment_expression "puVar33[-3] = 0x5c" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf8d93;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf8d93" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) comment comment (expression_statement "puVar33[-5] = 0x501dc;" (assignment_expression "puVar33[-5] = 0x501dc" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (if_statement "if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }" if (parenthesized_expression "(*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*ppuVar32 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*ppuVar32 + 8) + 0x1a25" (pointer_expression "*(int *)(*ppuVar32 + 8)" * (cast_expression "(int *)(*ppuVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar32 + 8)" ( (binary_expression "*ppuVar32 + 8" (pointer_expression "*ppuVar32" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }\n                      goto LAB_0004e466;\n                    }" { (labeled_statement "LAB_0004e454:\n                      if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }" statement_identifier : (if_statement "if ((uVar31 & 8) != 0) {\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }" if (parenthesized_expression "((uVar31 & 8) != 0)" ( (binary_expression "(uVar31 & 8) != 0" (parenthesized_expression "(uVar31 & 8)" ( (binary_expression "uVar31 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        sVar15 = (local_90->table_)._M_h._M_bucket_count;\n                        if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;\n                      }" { (expression_statement "sVar15 = (local_90->table_)._M_h._M_bucket_count;" (assignment_expression "sVar15 = (local_90->table_)._M_h._M_bucket_count" identifier = (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((sVar15 & 0x70000) == 0) {\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }\n                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;" if (parenthesized_expression "((sVar15 & 0x70000) == 0)" ( (binary_expression "(sVar15 & 0x70000) == 0" (parenthesized_expression "(sVar15 & 0x70000)" ( (binary_expression "sVar15 & 0x70000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }\n                        }" { (if_statement "if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }" if (parenthesized_expression "((((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0))" ( (binary_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0) &&\n                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)" (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx\n                               == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) == number_literal) )) && (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }\n                            goto LAB_0004eb80;\n                          }" { (labeled_statement "LAB_0004ebf4:\n                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }" statement_identifier : (if_statement "if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }" if (parenthesized_expression "(((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0))" ( (binary_expression "((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&\n                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)" (parenthesized_expression "((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2)" ( (binary_expression "(byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2" (call_expression "(byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((byte)(local_90->table_)._M_h._M_bucket_count >> 4)" ( (binary_expression "(byte)(local_90->table_)._M_h._M_bucket_count >> 4" (field_expression "(byte)(local_90->table_)._M_h._M_bucket_count" (field_expression "(byte)(local_90->table_)._M_h" (call_expression "(byte)(local_90->table_)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) >> number_literal) ))) != number_literal) )) && (parenthesized_expression "(((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)" ( (binary_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0" (parenthesized_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2)" ( (binary_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin" (field_expression "(uint)(local_90->table_)._M_h" (call_expression "(uint)(local_90->table_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                              if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }\n                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;\n                            }" { (if_statement "if (*(int *)(*ppuVar32 + 8) == 0) {\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }" if (parenthesized_expression "(*(int *)(*ppuVar32 + 8) == 0)" ( (binary_expression "*(int *)(*ppuVar32 + 8) == 0" (pointer_expression "*(int *)(*ppuVar32 + 8)" * (cast_expression "(int *)(*ppuVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar32 + 8)" ( (binary_expression "*ppuVar32 + 8" (pointer_expression "*ppuVar32" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                puVar33[-1] = ppuVar32;\n                                puVar33[-2] = local_94 + -0x3c69e;\n                                puVar33[-3] = 0x5c;\n                                puVar33[-4] = (int)local_94 + -0xf8d93;\n                                local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                                puVar33[-5] = &LAB_0005044d;\n                                gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                              }" { (expression_statement "puVar33[-1] = ppuVar32;" (assignment_expression "puVar33[-1] = ppuVar32" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-2] = local_94 + -0x3c69e;" (assignment_expression "puVar33[-2] = local_94 + -0x3c69e" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0x5c;" (assignment_expression "puVar33[-3] = 0x5c" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf8d93;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf8d93" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) comment (expression_statement "puVar33[-5] = &LAB_0005044d;" (assignment_expression "puVar33[-5] = &LAB_0005044d" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = (pointer_expression "&LAB_0005044d" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" (call_expression "do_gold_unreachable\n                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (if_statement "if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')\n                              goto LAB_0004e466;" if (parenthesized_expression "(*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')" ( (binary_expression "*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*ppuVar32 + 8) + 0x49b1)" ( (binary_expression "*(int *)(*ppuVar32 + 8) + 0x49b1" (pointer_expression "*(int *)(*ppuVar32 + 8)" * (cast_expression "(int *)(*ppuVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar32 + 8)" ( (binary_expression "*ppuVar32 + 8" (pointer_expression "*ppuVar32" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0004eb80;" goto statement_identifier ;) })) }) (else_clause "else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;" else (if_statement "if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;" if (parenthesized_expression "((sVar15 & 0x70000) == 0x40000)" ( (binary_expression "(sVar15 & 0x70000) == 0x40000" (parenthesized_expression "(sVar15 & 0x70000)" ( (binary_expression "sVar15 & 0x70000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ebf4;" goto statement_identifier ;)))) }))) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;) })) (if_statement "if (bVar19 == 0) {\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }\n                    else if (bVar19 != 4) goto LAB_0004e432;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }\n                    }" { (if_statement "if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }" if (parenthesized_expression "((((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0))" ( (binary_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)\n                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)" (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) != number_literal) )) || (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_0004e432:\n                        puVar33[-4] = local_90;\n                        local_a0 = &symval_1;\n                        puVar33[-5] = 0x4e449;\n                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);\n                        if (!bVar18) goto LAB_0004e454;\n                      }" { (labeled_statement "LAB_0004e432:\n                        puVar33[-4] = local_90;" statement_identifier : (expression_statement "puVar33[-4] = local_90;" (assignment_expression "puVar33[-4] = local_90" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-5] = 0x4e449;" (assignment_expression "puVar33[-5] = 0x4e449" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (labeled_statement "Symbol::is_preemptible((Symbol *)puVar33[-4]);" statement_identifier : (ERROR ":" :) (expression_statement "is_preemptible((Symbol *)puVar33[-4]);" (call_expression "is_preemptible((Symbol *)puVar33[-4])" identifier (argument_list "((Symbol *)puVar33[-4])" ( (cast_expression "(Symbol *)puVar33[-4]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) ))) ;)) (if_statement "if (!bVar18) goto LAB_0004e454;" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (goto_statement "goto LAB_0004e454;" goto statement_identifier ;)) })) }) (else_clause "else if (bVar19 != 4) goto LAB_0004e432;" else (if_statement "if (bVar19 != 4) goto LAB_0004e432;" if (parenthesized_expression "(bVar19 != 4)" ( (binary_expression "bVar19 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004e432;" goto statement_identifier ;)))) })) })) (labeled_statement "LAB_0004eb80:\n                if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }" statement_identifier : (if_statement "if (this->plt_ == (Output_data_plt_i386 *)0x0) {\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }" if (parenthesized_expression "(this->plt_ == (Output_data_plt_i386 *)0x0)" ( (binary_expression "this->plt_ == (Output_data_plt_i386 *)0x0" (field_expression "this->plt_" identifier -> field_identifier) == (cast_expression "(Output_data_plt_i386 *)0x0" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  local_a0 = &symval_1;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */\n                  puVar33[-1] = 0x50198;\n                  plt_section((Target_i386 *)*puVar33);\n                }" { (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) comment comment (expression_statement "puVar33[-1] = 0x50198;" (assignment_expression "puVar33[-1] = 0x50198" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plt_section((Target_i386 *)*puVar33);" (call_expression "plt_section((Target_i386 *)*puVar33)" identifier (argument_list "((Target_i386 *)*puVar33)" ( (cast_expression "(Target_i386 *)*puVar33" ( (type_descriptor "Target_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier)) ))) ;) }))) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-1] = 0x4eba2;" (assignment_expression "puVar33[-1] = 0x4eba2" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = number_literal) ;) (ERROR "uVar41 = Output_data_plt_i386::" (assignment_expression "uVar41 = Output_data_plt_i386" identifier = identifier) : :) (expression_statement "address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);" (call_expression "address_for_global\n                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1])" identifier (argument_list "((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1])" ( (cast_expression "(Output_data_plt_i386 *)*puVar33" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier)) , (cast_expression "(Symbol *)puVar33[1]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[1]" identifier [ number_literal ])) ))) ;) (expression_statement "symval_1.u_.value = (Value)uVar41;" (assignment_expression "symval_1.u_.value = (Value)uVar41" (field_expression "symval_1.u_.value" (field_expression "symval_1.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Value)uVar41" ( (type_descriptor "Value" type_identifier) ) identifier)) ;) (expression_statement "local_9c = &symval_1;" (assignment_expression "local_9c = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) }))) (labeled_statement "LAB_0004e466:\n              local_a0 = &symval_1;" statement_identifier : (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;)) (if_statement "if (local_b0 < 0xfc) {\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }" if (parenthesized_expression "(local_b0 < 0xfc)" ( (binary_expression "local_b0 < 0xfc" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))" ( (pointer_expression "*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" * (cast_expression "(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[local_b0 - 0x3cc95] + (int)local_94)" ( (binary_expression "local_94[local_b0 - 0x3cc95] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cc95]" identifier [ (binary_expression "local_b0 - 0x3cc95" identifier - number_literal) ]) + (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0004e736;" goto statement_identifier ;) })) (expression_statement "puVar33[-3] = 1;" (assignment_expression "puVar33[-3] = 1" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = local_90;" (assignment_expression "puVar33[-4] = local_90" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-5] = 0x4ea09;" (assignment_expression "puVar33[-5] = 0x4ea09" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (labeled_statement "Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);" (call_expression "needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3])" identifier (argument_list "((Symbol *)puVar33[-4],puVar33[-3])" ( (cast_expression "(Symbol *)puVar33[-4]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) ))) ;)) (expression_statement "pSVar6 = local_90;" (assignment_expression "pSVar6 = local_90" identifier = identifier) ;) (if_statement "if (!bVar18) {\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\nLAB_0004f070:\n              uVar22 = 0;\nLAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));\n              goto LAB_0004e381;\n            }" { (labeled_statement "LAB_0004f070:\n              uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0004f078:\n              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));" statement_identifier : (expression_statement "uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));" (assignment_expression "uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040))" identifier = (binary_expression "(uint)*(char *)((int)local_94 + (uVar22 - 0xf2040))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)((int)local_94 + (uVar22 - 0xf2040))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + (uVar22 - 0xf2040))" ( (binary_expression "(int)local_94 + (uVar22 - 0xf2040)" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar22 - 0xf2040)" ( (binary_expression "uVar22 - 0xf2040" identifier - number_literal) ))) ))))) ;)) (goto_statement "goto LAB_0004e381;" goto statement_identifier ;) })) (expression_statement "puVar33[-3] = 0;" (assignment_expression "puVar33[-3] = 0" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = local_90;" (assignment_expression "puVar33[-4] = local_90" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-5] = 0x4ea2e;" (assignment_expression "puVar33[-5] = 0x4ea2e" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (labeled_statement "Symbol::can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));" statement_identifier : (ERROR ":" :) (expression_statement "can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));" (call_expression "can_use_relative_reloc\n                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3))" identifier (argument_list "((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3))" ( (cast_expression "(Symbol *)puVar33[-4]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (pointer_expression "*(bool *)(puVar33 + -3)" * (cast_expression "(bool *)(puVar33 + -3)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -3)" ( (binary_expression "puVar33 + -3" identifier + number_literal) )))) ))) ;)) (if_statement "if (!bVar18) goto LAB_0004f070;" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (expression_statement "sVar15 = (pSVar6->table_)._M_h._M_bucket_count;" (assignment_expression "sVar15 = (pSVar6->table_)._M_h._M_bucket_count" identifier = (field_expression "(pSVar6->table_)._M_h._M_bucket_count" (field_expression "(pSVar6->table_)._M_h" (parenthesized_expression "(pSVar6->table_)" ( (field_expression "pSVar6->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((sVar15 & 0x70000) != 0) {\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }" if (parenthesized_expression "((sVar15 & 0x70000) != 0)" ( (binary_expression "(sVar15 & 0x70000) != 0" (parenthesized_expression "(sVar15 & 0x70000)" ( (binary_expression "sVar15 & 0x70000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;\n              goto LAB_0004f070;\n            }" { (if_statement "if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;" if (parenthesized_expression "((sVar15 & 0x70000) != 0x40000)" ( (binary_expression "(sVar15 & 0x70000) != 0x40000" (parenthesized_expression "(sVar15 & 0x70000)" ( (binary_expression "sVar15 & 0x70000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ea6a;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;) })) (if_statement "if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;" if (parenthesized_expression "((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0))))" ( (binary_expression "(((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0) ||\n               ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))" (parenthesized_expression "(((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0)" ( (binary_expression "((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1) != 0" (parenthesized_expression "((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1)" ( (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage & 1" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base<gold" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3].\n                        super__Vector_base" (subscript_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_[3]" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->\n                        output_lists_" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment" (call_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar6->offset_" & (field_expression "pSVar6->offset_" identifier -> field_identifier))) ))) -> field_identifier) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))" ( (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0))" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&\n                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)" (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar6->offset_" & (field_expression "pSVar6->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) == number_literal) && (parenthesized_expression "(((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)" ( (binary_expression "((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0" (parenthesized_expression "((pSVar6->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(pSVar6->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(pSVar6->table_)._M_h._M_bucket_count" (field_expression "(pSVar6->table_)._M_h" (parenthesized_expression "(pSVar6->table_)" ( (field_expression "pSVar6->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (labeled_statement "LAB_0004ea6a:\n            puVar33[-4] = local_90;" statement_identifier : (expression_statement "puVar33[-4] = local_90;" (assignment_expression "puVar33[-4] = local_90" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-5] = 0x4ea81;" (assignment_expression "puVar33[-5] = 0x4ea81" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = gold::" (assignment_expression "bVar18 = gold" identifier = identifier) : :) (labeled_statement "Symbol::is_preemptible((Symbol *)puVar33[-4]);" statement_identifier : (ERROR ":" :) (expression_statement "is_preemptible((Symbol *)puVar33[-4]);" (call_expression "is_preemptible((Symbol *)puVar33[-4])" identifier (argument_list "((Symbol *)puVar33[-4])" ( (cast_expression "(Symbol *)puVar33[-4]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) ))) ;)) (if_statement "if (bVar18) goto LAB_0004f070;" if (parenthesized_expression "(bVar18)" ( identifier )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (expression_statement "local_a0 = &symval_1;" (assignment_expression "local_a0 = &symval_1" identifier = (pointer_expression "&symval_1" & identifier)) ;) (expression_statement "puVar33[-4] = output_section;" (assignment_expression "puVar33[-4] = output_section" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x4eab3;" (assignment_expression "puVar33[-5] = 0x4eab3" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "bVar18 = Relocate::" (assignment_expression "bVar18 = Relocate" identifier = identifier) : :) (expression_statement "should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);" (call_expression "should_apply_static_reloc\n                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33)" identifier (argument_list "((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33)" ( (cast_expression "(Relocate *)puVar33[-4]" ( (type_descriptor "Relocate *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (parenthesized_expression "(Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33)" ( (comma_expression "Sized_symbol<32> *)puVar33[-3],puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33" (binary_expression "Sized_symbol<32> *)puVar33[-3]" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)puVar33[-3]" * (ERROR ")" )) (subscript_expression "puVar33[-3]" identifier [ number_literal ]))) , (comma_expression "puVar33[-2],\n                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) , (comma_expression "*(bool *)(puVar33 + -1),(Output_section *)*puVar33" (pointer_expression "*(bool *)(puVar33 + -1)" * (cast_expression "(bool *)(puVar33 + -1)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -1)" ( (binary_expression "puVar33 + -1" identifier + number_literal) )))) , (cast_expression "(Output_section *)*puVar33" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))))) )) ))) ;) (expression_statement "pVVar16 = local_a4;" (assignment_expression "pVVar16 = local_a4" identifier = identifier) ;) (if_statement "if (bVar18) {\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }\n      else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n              puVar33[-2] = *local_a4;\n              puVar33[-3] = local_bc;\n              puVar33[-4] = local_9c;\n              puVar33[-5] = 0x4eada;\n              VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar33[-4] = local_ac;\n        puVar33[-5] = 0x4e55b;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n        puVar34 = puVar33;\n      }" { (expression_statement "puVar33[-2] = *local_a4;" (assignment_expression "puVar33[-2] = *local_a4" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (pointer_expression "*local_a4" * identifier)) ;) (expression_statement "puVar33[-3] = local_bc;" (assignment_expression "puVar33[-3] = local_bc" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = local_9c;" (assignment_expression "puVar33[-4] = local_9c" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x4eada;" (assignment_expression "puVar33[-5] = 0x4eada" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);" (binary_expression "VVar24 = gold::Symbol_value<32>::value<false>\n                                 ((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3])" (binary_expression "VVar24 = gold::Symbol_value<32>::value<false" (binary_expression "VVar24 = gold::Symbol_value<32>::value" (binary_expression "VVar24 = gold::Symbol_value<32" (assignment_expression "VVar24 = gold" identifier = identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "::" : :) identifier) < false) > (parenthesized_expression "((Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3])" ( (parenthesized_expression "(Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3])" ( (ERROR "Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);\n              *pVVar16 = VVar24;\n            }\n          }\n          puVar33[-4] = local_a0;\n          puVar33[-5] = 0x4e4c6;\n          gold::" (comma_expression "Symbol_value<32> *)puVar33[-4],\n                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2])" (binary_expression "Symbol_value<32> *)puVar33[-4]" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)puVar33[-4]" * (ERROR ")" )) (subscript_expression "puVar33[-4]" identifier [ number_literal ]))) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2])" ( (comma_expression "Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)puVar33[-3],puVar33[-2]" (binary_expression "_false> *)puVar33[-3]" identifier > (pointer_expression "*)puVar33[-3]" * (ERROR ")" )) (subscript_expression "puVar33[-3]" identifier [ number_literal ]))) , (subscript_expression "puVar33[-2]" identifier [ number_literal ]))) ))) ; (assignment_expression "*pVVar16 = VVar24" (pointer_expression "*pVVar16" * identifier) = identifier) ; } } (assignment_expression "puVar33[-4] = local_a0" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ; (assignment_expression "puVar33[-5] = 0x4e4c6" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ; identifier : :) (comma_expression "Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]" (binary_expression "Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4]" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) (unary_expression "~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4]" ~ (subscript_expression "Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4]" (call_expression "Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)" identifier (argument_list "((Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0) {\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }\n        }\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)" ( (ERROR "(Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0)" (call_expression "(Symbol_value<32> *)puVar33[-4],puVar33[-3]);\n          if (local_90 != (Symbol_table *)0x0)" (parenthesized_expression "(Symbol_value<32> *)puVar33[-4],puVar33[-3])" ( (comma_expression "Symbol_value<32> *)puVar33[-4],puVar33[-3]" (binary_expression "Symbol_value<32> *)puVar33[-4]" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)puVar33[-4]" * (ERROR ")" )) (subscript_expression "puVar33[-4]" identifier [ number_literal ]))) , (subscript_expression "puVar33[-3]" identifier [ number_literal ])) )) (ERROR ";\n          if" ; if) (argument_list "(local_90 != (Symbol_table *)0x0)" ( (binary_expression "local_90 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) (compound_statement "{\n            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n            uVar31 = (uint)bVar21;\n            uVar22 = uVar31 & 7;\n            if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\nLAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }\n          }" { (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 2" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar31 = (uint)bVar21;" (assignment_expression "uVar31 = (uint)bVar21" identifier = (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar22 = uVar31 & 7;" (assignment_expression "uVar22 = uVar31 & 7" identifier = (binary_expression "uVar31 & 7" identifier & number_literal)) ;) (if_statement "if ((bVar21 & 7) == 0) {\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }\n            else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }" if (parenthesized_expression "((bVar21 & 7) == 0)" ( (binary_expression "(bVar21 & 7) == 0" (parenthesized_expression "(bVar21 & 7)" ( (binary_expression "bVar21 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }\n              if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }\nLAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }" { (if_statement "if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }\n              else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }" if (parenthesized_expression "((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0))" ( (binary_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)" (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) == number_literal) )) && (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }\n                if (bVar21 == 0) goto LAB_0004efaf;\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar19 = bVar19 & 7;\n                uVar22 = (uint)bVar19;\n                if (bVar19 != 0) goto LAB_0004eee0;\n              }" { (labeled_statement "LAB_0004ecc9:\n                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;" statement_identifier : (expression_statement "bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;" (assignment_expression "bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count" identifier = (field_expression "(byte)(local_90->table_)._M_h._M_bucket_count" (field_expression "(byte)(local_90->table_)._M_h" (call_expression "(byte)(local_90->table_)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;)) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar21)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar21)" identifier (argument_list "(local_9c._1_3_,bVar21)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (if_statement "if ((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }\n                else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "((bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))" ( (binary_expression "(bVar21 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)" (parenthesized_expression "(bVar21 >> 4 == 2)" ( (binary_expression "bVar21 >> 4 == 2" (binary_expression "bVar21 >> 4" identifier >> number_literal) == number_literal) )) || (parenthesized_expression "(((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)" ( (binary_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0" (parenthesized_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2)" ( (binary_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin" (field_expression "(uint)(local_90->table_)._M_h" (call_expression "(uint)(local_90->table_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                  bVar21 = bVar21 & 3;\n                }" { (labeled_statement "LAB_0004ef40:\n                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" statement_identifier : (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;)) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar21)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar21)" identifier (argument_list "(local_9c._1_3_,bVar21)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar21 & 3;" (assignment_expression "bVar21 = bVar21 & 3" identifier = (binary_expression "bVar21 & 3" identifier & number_literal)) ;) }) (else_clause "else {\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar28 = *(int *)(local_94[0xbc] + 8);\n                  if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  ppuVar32 = local_94 + 0xbc;\n                  if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar28 = *(int *)(local_94[0xbc] + 8);" (assignment_expression "iVar28 = *(int *)(local_94[0xbc] + 8)" identifier = (pointer_expression "*(int *)(local_94[0xbc] + 8)" * (cast_expression "(int *)(local_94[0xbc] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[0xbc] + 8)" ( (binary_expression "local_94[0xbc] + 8" (subscript_expression "local_94[0xbc]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (iVar28 == 0) {\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                    puVar33[-1] = uVar31;\n                    puVar33[-2] = local_94 + -0x3c69e;\n                    puVar33[-3] = 0x5c;\n                    puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = 0x5029b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }" { (expression_statement "puVar33[-1] = uVar31;" (assignment_expression "puVar33[-1] = uVar31" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-2] = local_94 + -0x3c69e;" (assignment_expression "puVar33[-2] = local_94 + -0x3c69e" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0x5c;" (assignment_expression "puVar33[-3] = 0x5c" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf8d93;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf8d93" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "puVar33[-5] = 0x5029b;" (assignment_expression "puVar33[-5] = 0x5029b" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (if_statement "if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;" if (parenthesized_expression "(*(char *)(iVar28 + 0x49b1) != '\0')" ( (binary_expression "*(char *)(iVar28 + 0x49b1) != '\0'" (pointer_expression "*(char *)(iVar28 + 0x49b1)" * (cast_expression "(char *)(iVar28 + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x49b1)" ( (binary_expression "iVar28 + 0x49b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ef40;" goto statement_identifier ;)) (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "ppuVar32 = local_94 + 0xbc;" (assignment_expression "ppuVar32 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (if_statement "if ((char)bVar19 < '\0') {\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }\n                  else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }" if (parenthesized_expression "((char)bVar19 < '\0')" ( (binary_expression "(char)bVar19 < '\0'" (cast_expression "(char)bVar19" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;\n                    ppuVar32 = local_94 + -0xba878;\nLAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];\n                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;\n                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    puVar33[-5] = 0x4ed5c;\n                    iVar28 = (*(code *)ppuVar4)();\n                    ppuVar32 = local_e4;\n                    if (iVar28 != 0) goto LAB_0004ed70;\nLAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                    bVar21 = bVar21 & 3;\n                  }" { (if_statement "if ((char)uVar22 != '\0') goto LAB_0004f8f7;" if (parenthesized_expression "((char)uVar22 != '\0')" ( (binary_expression "(char)uVar22 != '\0'" (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f8f7;" goto statement_identifier ;)) (expression_statement "ppuVar32 = local_94 + -0xba878;" (assignment_expression "ppuVar32 = local_94 + -0xba878" identifier = (binary_expression "local_94 + -0xba878" identifier + number_literal)) ;) (labeled_statement "LAB_0004ed40:\n                    ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];" statement_identifier : (expression_statement "ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5];" (assignment_expression "ppuVar4 = (undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5]" identifier = (cast_expression "(undefined **)\n                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object[5]" (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                              _vptr_Object" (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object" (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) )) -> field_identifier) -> field_identifier) [ number_literal ]))) ;)) (if_statement "if (ppuVar4 == ppuVar32) goto LAB_0004e51b;" if (parenthesized_expression "(ppuVar4 == ppuVar32)" ( (binary_expression "ppuVar4 == ppuVar32" identifier == identifier) )) (goto_statement "goto LAB_0004e51b;" goto statement_identifier ;)) (expression_statement "puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;" (assignment_expression "puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object" (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) )) -> field_identifier)) ;) (expression_statement "puVar33[-5] = 0x4ed5c;" (assignment_expression "puVar33[-5] = 0x4ed5c" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar28 = (*(code *)ppuVar4)();" (assignment_expression "iVar28 = (*(code *)ppuVar4)()" identifier = (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "ppuVar32 = local_e4;" (assignment_expression "ppuVar32 = local_e4" identifier = identifier) ;) (if_statement "if (iVar28 != 0) goto LAB_0004ed70;" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ed70;" goto statement_identifier ;)) (labeled_statement "LAB_0004eea0:\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" statement_identifier : (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;)) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar21)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar21)" identifier (argument_list "(local_9c._1_3_,bVar21)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar21 & 3;" (assignment_expression "bVar21 = bVar21 & 3" identifier = (binary_expression "bVar21 & 3" identifier & number_literal)) ;) }) (else_clause "else {\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }" else (compound_statement "{\nLAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);\n                    if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    iVar28 = *piVar7;\n                    puVar33[-3] = local_90;\n                    puVar33[-4] = piVar7;\n                    pcVar8 = *(code **)(iVar28 + 0x1c);\n                    puVar33[-5] = 0x4ed8c;\n                    cVar20 = (*pcVar8)();\n                    pSVar6 = local_90;\n                    if (cVar20 != '\0') goto LAB_0004eea0;\n                    iVar28 = *(int *)(*ppuVar32 + 8);\n                    if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }\n                    pbVar36 = *(byte **)(iVar28 + 0x42e4);\n                    bVar18 = false;\n                    bVar39 = pbVar36 == (byte *)0x0;\n                    if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }\n                  }" { (labeled_statement "LAB_0004ed70:\n                    piVar7 = *(int **)(*ppuVar32 + 0xc);" statement_identifier : (expression_statement "piVar7 = *(int **)(*ppuVar32 + 0xc);" (assignment_expression "piVar7 = *(int **)(*ppuVar32 + 0xc)" identifier = (pointer_expression "*(int **)(*ppuVar32 + 0xc)" * (cast_expression "(int **)(*ppuVar32 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*ppuVar32 + 0xc)" ( (binary_expression "*ppuVar32 + 0xc" (pointer_expression "*ppuVar32" * identifier) + number_literal) ))))) ;)) (if_statement "if (piVar7 == (int *)0x0) {\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      puVar33[-2] = local_94 + -0x3c759;\n                      puVar33[-3] = 0x69;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */\n                      puVar33[-5] = 0x501fa;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }" { (expression_statement "puVar33[-2] = local_94 + -0x3c759;" (assignment_expression "puVar33[-2] = local_94 + -0x3c759" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c759" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0x69;" (assignment_expression "puVar33[-3] = 0x69" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf8d93;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf8d93" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "puVar33[-5] = 0x501fa;" (assignment_expression "puVar33[-5] = 0x501fa" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "iVar28 = *piVar7;" (assignment_expression "iVar28 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "puVar33[-3] = local_90;" (assignment_expression "puVar33[-3] = local_90" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = piVar7;" (assignment_expression "puVar33[-4] = piVar7" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar8 = *(code **)(iVar28 + 0x1c);" (assignment_expression "pcVar8 = *(code **)(iVar28 + 0x1c)" identifier = (pointer_expression "*(code **)(iVar28 + 0x1c)" * (cast_expression "(code **)(iVar28 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 0x1c)" ( (binary_expression "iVar28 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "puVar33[-5] = 0x4ed8c;" (assignment_expression "puVar33[-5] = 0x4ed8c" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar20 = (*pcVar8)();" (assignment_expression "cVar20 = (*pcVar8)()" identifier = (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pSVar6 = local_90;" (assignment_expression "pSVar6 = local_90" identifier = identifier) ;) (if_statement "if (cVar20 != '\0') goto LAB_0004eea0;" if (parenthesized_expression "(cVar20 != '\0')" ( (binary_expression "cVar20 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004eea0;" goto statement_identifier ;)) (expression_statement "iVar28 = *(int *)(*ppuVar32 + 8);" (assignment_expression "iVar28 = *(int *)(*ppuVar32 + 8)" identifier = (pointer_expression "*(int *)(*ppuVar32 + 8)" * (cast_expression "(int *)(*ppuVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar32 + 8)" ( (binary_expression "*ppuVar32 + 8" (pointer_expression "*ppuVar32" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar28 == 0) {\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                      puVar33[-2] = local_94 + -0x3c69e;\n                      puVar33[-3] = 0x5c;\n                      puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                      puVar33[-5] = &LAB_00050218;\n                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;\n                    }" { (expression_statement "puVar33[-2] = local_94 + -0x3c69e;" (assignment_expression "puVar33[-2] = local_94 + -0x3c69e" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0x5c;" (assignment_expression "puVar33[-3] = 0x5c" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf8d93;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf8d93" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar33[-5] = &LAB_00050218;" (assignment_expression "puVar33[-5] = &LAB_00050218" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = (pointer_expression "&LAB_00050218" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])\n                      ;" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "pbVar36 = *(byte **)(iVar28 + 0x42e4);" (assignment_expression "pbVar36 = *(byte **)(iVar28 + 0x42e4)" identifier = (pointer_expression "*(byte **)(iVar28 + 0x42e4)" * (cast_expression "(byte **)(iVar28 + 0x42e4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 0x42e4)" ( (binary_expression "iVar28 + 0x42e4" identifier + number_literal) ))))) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar39 = pbVar36 == (byte *)0x0;" (assignment_expression "bVar39 = pbVar36 == (byte *)0x0" identifier = (binary_expression "pbVar36 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar39) {\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }\n                    else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\nLAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }\n                    }" { (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar21)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar21)" identifier (argument_list "(local_9c._1_3_,bVar21)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar21 & 3;" (assignment_expression "bVar21 = bVar21 & 3" identifier = (binary_expression "bVar21 & 3" identifier & number_literal)) ;) (labeled_statement "LAB_0004ee51:\n                      if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }" statement_identifier : (if_statement "if ((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }" if (parenthesized_expression "((bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0'))))" ( (binary_expression "(bVar21 == 2) ||\n                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))" (parenthesized_expression "(bVar21 == 2)" ( (binary_expression "bVar21 == 2" identifier == number_literal) )) || (parenthesized_expression "((*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')))" ( (parenthesized_expression "(*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0'))" ( (binary_expression "*(char *)(iVar28 + 0x1a25) == '\0' ||\n                          (*(char *)(iVar28 + 0x4eb5) != '\0')" (binary_expression "*(char *)(iVar28 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar28 + 0x1a25)" * (cast_expression "(char *)(iVar28 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x1a25)" ( (binary_expression "iVar28 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(char *)(iVar28 + 0x4eb5) != '\0')" ( (binary_expression "*(char *)(iVar28 + 0x4eb5) != '\0'" (pointer_expression "*(char *)(iVar28 + 0x4eb5)" * (cast_expression "(char *)(iVar28 + 0x4eb5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x4eb5)" ( (binary_expression "iVar28 + 0x4eb5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\nLAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;\n                        puVar33[-5] = local_b8;\n                        puVar33[-6] = local_a8;\n                        puVar33[-7] = relinfo;\n                        puVar33[-8] = local_90;\n                        puVar33[-9] = 0x4ee8e;\n                        gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));\n                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);\n                        goto LAB_0004e538;\n                      }" { (labeled_statement "LAB_0004ee67:\n                        puVar33[-4] = (int)local_b8 >> 0x1f;" statement_identifier : (expression_statement "puVar33[-4] = (int)local_b8 >> 0x1f;" (assignment_expression "puVar33[-4] = (int)local_b8 >> 0x1f" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;)) (expression_statement "puVar33[-5] = local_b8;" (assignment_expression "puVar33[-5] = local_b8" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-6] = local_a8;" (assignment_expression "puVar33[-6] = local_a8" (subscript_expression "puVar33[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-7] = relinfo;" (assignment_expression "puVar33[-7] = relinfo" (subscript_expression "puVar33[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-8] = local_90;" (assignment_expression "puVar33[-8] = local_90" (subscript_expression "puVar33[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-9] = 0x4ee8e;" (assignment_expression "puVar33[-9] = 0x4ee8e" (subscript_expression "puVar33[-9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));" statement_identifier : (ERROR ":" :) (expression_statement "gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4));" (comma_expression "gold_undefined_symbol_at_location<32,_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4))" (binary_expression "gold_undefined_symbol_at_location<32" identifier < number_literal) , (binary_expression "_false>\n                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4))" identifier > (parenthesized_expression "((gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4))" ( (comma_expression "(gold *)puVar33[-8],(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4))" (cast_expression "(gold *)puVar33[-8]" ( (type_descriptor "gold *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-8]" identifier [ number_literal ])) , (comma_expression "(Symbol *)puVar33[-7],\n                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4))" (cast_expression "(Symbol *)puVar33[-7]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-7]" identifier [ number_literal ])) , (parenthesized_expression "(Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4))" ( (comma_expression "Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4)" (binary_expression "Relocate_info<32" identifier < number_literal) , (comma_expression "_false> *)puVar33[-6],puVar33[-5],\n                                   *(off_t *)(puVar33 + -4)" (binary_expression "_false> *)puVar33[-6]" identifier > (pointer_expression "*)puVar33[-6]" * (ERROR ")" )) (subscript_expression "puVar33[-6]" identifier [ number_literal ]))) , (comma_expression "puVar33[-5],\n                                   *(off_t *)(puVar33 + -4)" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) , (pointer_expression "*(off_t *)(puVar33 + -4)" * (cast_expression "(off_t *)(puVar33 + -4)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -4)" ( (binary_expression "puVar33 + -4" identifier + number_literal) ))))))) )))) )))) ;)) (expression_statement "bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pSVar6->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(pSVar6->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(pSVar6->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pSVar6->table_)._M_h._M_bucket_count" & (field_expression "(pSVar6->table_)._M_h._M_bucket_count" (field_expression "(pSVar6->table_)._M_h" (parenthesized_expression "(pSVar6->table_)" ( (field_expression "pSVar6->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) }))) }) (else_clause "else {\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }" else (compound_statement "{\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);\n                      bVar38 = false;\n                      bVar18 = (!bVar18 && !bVar39) == bVar18;\n                      if (bVar18) goto LAB_0004eea0;\n                      iVar30 = 0xb;\n                      pbVar35 = pbVar36;\n                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);\n                      bVar39 = false;\n                      bVar18 = (!bVar38 && !bVar18) == bVar38;\n                      if (bVar18) goto LAB_0004ee67;\n                      iVar30 = 0x17;\n                      pbVar35 = pbVar36;\n                      ppuVar32 = local_94 + -0x3e3e4;\n                      do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);\n                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);\n                      bVar21 = bVar21 & 3;\n                      bVar18 = (!bVar39 && !bVar18) == bVar39;\n                      if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }\n                    }" { (expression_statement "iVar30 = 0xb;" (assignment_expression "iVar30 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar35 = pbVar36;" (assignment_expression "pbVar35 = pbVar36" identifier = identifier) ;) (expression_statement "pbVar37 = (byte *)((int)local_94 + -0xf8fa6);" (assignment_expression "pbVar37 = (byte *)((int)local_94 + -0xf8fa6)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8fa6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8fa6)" ( (binary_expression "(int)local_94 + -0xf8fa6" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar39);" do (compound_statement "{\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar18 = *pbVar35 < *pbVar37;\n                        bVar39 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      }" { (if_statement "if (iVar30 == 0) break;" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar30 = iVar30 + -1;" (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar35 < *pbVar37;" (assignment_expression "bVar18 = *pbVar35 < *pbVar37" identifier = (binary_expression "*pbVar35 < *pbVar37" (pointer_expression "*pbVar35" * identifier) < (pointer_expression "*pbVar37" * identifier))) ;) (expression_statement "bVar39 = *pbVar35 == *pbVar37;" (assignment_expression "bVar39 = *pbVar35 == *pbVar37" identifier = (binary_expression "*pbVar35 == *pbVar37" (pointer_expression "*pbVar35" * identifier) == (pointer_expression "*pbVar37" * identifier))) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar37 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar37 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar18 && !bVar39) == bVar18;" (assignment_expression "bVar18 = (!bVar18 && !bVar39) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar39) == bVar18" (parenthesized_expression "(!bVar18 && !bVar39)" ( (binary_expression "!bVar18 && !bVar39" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar18) goto LAB_0004eea0;" if (parenthesized_expression "(bVar18)" ( identifier )) (goto_statement "goto LAB_0004eea0;" goto statement_identifier ;)) (expression_statement "iVar30 = 0xb;" (assignment_expression "iVar30 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar35 = pbVar36;" (assignment_expression "pbVar35 = pbVar36" identifier = identifier) ;) (expression_statement "pbVar37 = (byte *)((int)local_94 + -0xf8f9b);" (assignment_expression "pbVar37 = (byte *)((int)local_94 + -0xf8f9b)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8f9b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8f9b)" ( (binary_expression "(int)local_94 + -0xf8f9b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      } while (bVar18);" do (compound_statement "{\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar38 = *pbVar35 < *pbVar37;\n                        bVar18 = *pbVar35 == *pbVar37;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;\n                      }" { (if_statement "if (iVar30 == 0) break;" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar30 = iVar30 + -1;" (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar35 < *pbVar37;" (assignment_expression "bVar38 = *pbVar35 < *pbVar37" identifier = (binary_expression "*pbVar35 < *pbVar37" (pointer_expression "*pbVar35" * identifier) < (pointer_expression "*pbVar37" * identifier))) ;) (expression_statement "bVar18 = *pbVar35 == *pbVar37;" (assignment_expression "bVar18 = *pbVar35 == *pbVar37" identifier = (binary_expression "*pbVar35 == *pbVar37" (pointer_expression "*pbVar35" * identifier) == (pointer_expression "*pbVar37" * identifier))) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar37 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar37 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "bVar18 = (!bVar38 && !bVar18) == bVar38;" (assignment_expression "bVar18 = (!bVar38 && !bVar18) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar18) == bVar38" (parenthesized_expression "(!bVar38 && !bVar18)" ( (binary_expression "!bVar38 && !bVar18" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar18) goto LAB_0004ee67;" if (parenthesized_expression "(bVar18)" ( identifier )) (goto_statement "goto LAB_0004ee67;" goto statement_identifier ;)) (expression_statement "iVar30 = 0x17;" (assignment_expression "iVar30 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar35 = pbVar36;" (assignment_expression "pbVar35 = pbVar36" identifier = identifier) ;) (expression_statement "ppuVar32 = local_94 + -0x3e3e4;" (assignment_expression "ppuVar32 = local_94 + -0x3e3e4" identifier = (binary_expression "local_94 + -0x3e3e4" identifier + number_literal)) ;) (do_statement "do {\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      } while (bVar18);" do (compound_statement "{\n                        if (iVar30 == 0) break;\n                        iVar30 = iVar30 + -1;\n                        bVar39 = *pbVar35 < *(byte *)ppuVar32;\n                        bVar18 = *pbVar35 == *(byte *)ppuVar32;\n                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);\n                      }" { (if_statement "if (iVar30 == 0) break;" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar30 = iVar30 + -1;" (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ;) (expression_statement "bVar39 = *pbVar35 < *(byte *)ppuVar32;" (assignment_expression "bVar39 = *pbVar35 < *(byte *)ppuVar32" identifier = (binary_expression "*pbVar35 < *(byte *)ppuVar32" (pointer_expression "*pbVar35" * identifier) < (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar18 = *pbVar35 == *(byte *)ppuVar32;" (assignment_expression "bVar18 = *pbVar35 == *(byte *)ppuVar32" identifier = (binary_expression "*pbVar35 == *(byte *)ppuVar32" (pointer_expression "*pbVar35" * identifier) == (pointer_expression "*(byte *)ppuVar32" * (cast_expression "(byte *)ppuVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);" (assignment_expression "ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar32 + (uint)bVar40 * -2 + 1)" ( (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2 + 1" (binary_expression "(int)ppuVar32 + (uint)bVar40 * -2" (cast_expression "(int)ppuVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar21)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar21)" identifier (argument_list "(local_9c._1_3_,bVar21)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar21 & 3;" (assignment_expression "bVar21 = bVar21 & 3" identifier = (binary_expression "bVar21 & 3" identifier & number_literal)) ;) (expression_statement "bVar18 = (!bVar39 && !bVar18) == bVar39;" (assignment_expression "bVar18 = (!bVar39 && !bVar18) == bVar39" identifier = (binary_expression "(!bVar39 && !bVar18) == bVar39" (parenthesized_expression "(!bVar39 && !bVar18)" ( (binary_expression "!bVar39 && !bVar18" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if ((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)) {\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }" if (parenthesized_expression "((!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18))" ( (binary_expression "(!bVar18) ||\n                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)" (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) || (parenthesized_expression "(bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18)" ( (comma_expression "bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,\n                         !bVar18" (assignment_expression "bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0" identifier = (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0x1000000)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0x1000000" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal)) , (unary_expression "!bVar18" ! identifier)) ))) )) (compound_statement "{\n                        bVar39 = false;\n                        iVar30 = 0x16;\n                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);\n                        do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);\n                        if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;\n                      }" { (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (expression_statement "iVar30 = 0x16;" (assignment_expression "iVar30 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar35 = (byte *)((int)local_94 + -0xf8f79);" (assignment_expression "pbVar35 = (byte *)((int)local_94 + -0xf8f79)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8f79)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8f79)" ( (binary_expression "(int)local_94 + -0xf8f79" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        } while (bVar18);" do (compound_statement "{\n                          if (iVar30 == 0) break;\n                          iVar30 = iVar30 + -1;\n                          bVar39 = *pbVar36 < *pbVar35;\n                          bVar18 = *pbVar36 == *pbVar35;\n                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;\n                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n                        }" { (if_statement "if (iVar30 == 0) break;" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar30 = iVar30 + -1;" (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ;) (expression_statement "bVar39 = *pbVar36 < *pbVar35;" (assignment_expression "bVar39 = *pbVar36 < *pbVar35" identifier = (binary_expression "*pbVar36 < *pbVar35" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar18 = *pbVar36 == *pbVar35;" (assignment_expression "bVar18 = *pbVar36 == *pbVar35" identifier = (binary_expression "*pbVar36 == *pbVar35" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if (((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')) goto LAB_0004ee51;" if (parenthesized_expression "(((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0'))" ( (binary_expression "((!bVar39 && !bVar18) != bVar39) ||\n                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')" (parenthesized_expression "((!bVar39 && !bVar18) != bVar39)" ( (binary_expression "(!bVar39 && !bVar18) != bVar39" (parenthesized_expression "(!bVar39 && !bVar18)" ( (binary_expression "!bVar39 && !bVar18" (unary_expression "!bVar39" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) != identifier) )) || (parenthesized_expression "((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0')" ( (binary_expression "(char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)\n                            < '\0'" (cast_expression "(char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 2" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0004ee51;" goto statement_identifier ;)) })) }))) }))) }))) (if_statement "if (bVar21 == 0) goto LAB_0004efaf;" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;)) (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 2" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar19)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar19)" identifier (argument_list "(local_9c._1_3_,bVar19)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar19 = bVar19 & 7;" (assignment_expression "bVar19 = bVar19 & 7" identifier = (binary_expression "bVar19 & 7" identifier & number_literal)) ;) (expression_statement "uVar22 = (uint)bVar19;" (assignment_expression "uVar22 = (uint)bVar19" identifier = (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar19 != 0) goto LAB_0004eee0;" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004eee0;" goto statement_identifier ;)) }) (else_clause "else {\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }" else (compound_statement "{\n                ppuVar32 = local_94 + -0xba878;\n                ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];\n                if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }\nLAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                bVar21 = bVar19 & 3;\n                if ((bVar19 & 3) == 0) goto LAB_0004e534;\n                uVar22 = uVar31 & 7;\n              }" { (expression_statement "ppuVar32 = local_94 + -0xba878;" (assignment_expression "ppuVar32 = local_94 + -0xba878" identifier = (binary_expression "local_94 + -0xba878" identifier + number_literal)) ;) (expression_statement "ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5];" (assignment_expression "ppuVar4 = (undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5]" identifier = (cast_expression "(undefined **)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object[5]" (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->\n                          _vptr_Object" (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object" (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) )) -> field_identifier) -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar4 != ppuVar32) {\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }" if (parenthesized_expression "(ppuVar4 != ppuVar32)" ( (binary_expression "ppuVar4 != ppuVar32" identifier != identifier) )) (compound_statement "{\n                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;\n                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */\n                  puVar33[-5] = 0x4f896;\n                  iVar28 = (*(code *)ppuVar4)();\n                  if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }\n                  goto LAB_0004ef40;\n                }" { (expression_statement "puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;" (assignment_expression "puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object" (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) )) -> field_identifier)) ;) comment (expression_statement "puVar33[-5] = 0x4f896;" (assignment_expression "puVar33[-5] = 0x4f896" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar28 = (*(code *)ppuVar4)();" (assignment_expression "iVar28 = (*(code *)ppuVar4)()" identifier = (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar28 != 0) {\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);\n                    uVar31 = (uint)bVar21;\n                    uVar22 = uVar31 & 7;\n                    if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }\n                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                    if (-1 < (char)bVar19) goto LAB_0004f8c5;\nLAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);\n                    bVar21 = bVar1 & 3;\n                    if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }\n                    goto LAB_0004e538;\n                  }" { (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 2)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 2" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar31 = (uint)bVar21;" (assignment_expression "uVar31 = (uint)bVar21" identifier = (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar22 = uVar31 & 7;" (assignment_expression "uVar22 = uVar31 & 7" identifier = (binary_expression "uVar31 & 7" identifier & number_literal)) ;) (if_statement "if ((bVar21 & 7) == 0) {\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }" if (parenthesized_expression "((bVar21 & 7) == 0)" ( (binary_expression "(bVar21 & 7) == 0" (parenthesized_expression "(bVar21 & 7)" ( (binary_expression "bVar21 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                      if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }\n                      if ((char)bVar21 < '\0') goto LAB_0004ed40;\nLAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;\n                      goto LAB_0004ed70;\n                    }" { (if_statement "if (((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)\n                      {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }\n                      else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }" if (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) == number_literal) )) (compound_statement "{\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;\n                      }" { (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;" if (parenthesized_expression "((bVar21 & 0x20) != 0)" ( (binary_expression "(bVar21 & 0x20) != 0" (parenthesized_expression "(bVar21 & 0x20)" ( (binary_expression "bVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) }) (else_clause "else {\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }" else (compound_statement "{\n                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                      }" { (expression_statement "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }))) (if_statement "if ((char)bVar21 < '\0') goto LAB_0004ed40;" if (parenthesized_expression "((char)bVar21 < '\0')" ( (binary_expression "(char)bVar21 < '\0'" (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ed40;" goto statement_identifier ;)) (labeled_statement "LAB_0004f8c5:\n                      ppuVar32 = local_94 + 0xbc;" statement_identifier : (expression_statement "ppuVar32 = local_94 + 0xbc;" (assignment_expression "ppuVar32 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;)) (goto_statement "goto LAB_0004ed70;" goto statement_identifier ;) })) (if_statement "if ((char)uVar22 == '\x04') goto LAB_0004ecc9;" if (parenthesized_expression "((char)uVar22 == '\x04')" ( (binary_expression "(char)uVar22 == '\x04'" (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (-1 < (char)bVar19) goto LAB_0004f8c5;" if (parenthesized_expression "(-1 < (char)bVar19)" ( (binary_expression "-1 < (char)bVar19" number_literal < (cast_expression "(char)bVar19" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0004f8c5;" goto statement_identifier ;)) (labeled_statement "LAB_0004f8f7:\n                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" statement_identifier : (expression_statement "bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;)) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar1)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar1)" identifier (argument_list "(local_9c._1_3_,bVar1)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar1 & 3;" (assignment_expression "bVar21 = bVar1 & 3" identifier = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar1 & 3) != 0) {\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }" if (parenthesized_expression "((bVar1 & 3) != 0)" ( (binary_expression "(bVar1 & 3) != 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      uVar22 = uVar31 & 7;\n                      goto LAB_0004eee0;\n                    }" { (expression_statement "uVar22 = uVar31 & 7;" (assignment_expression "uVar22 = uVar31 & 7" identifier = (binary_expression "uVar31 & 7" identifier & number_literal)) ;) (goto_statement "goto LAB_0004eee0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004ef40;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e51b:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" statement_identifier : (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;)) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar19)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar19)" identifier (argument_list "(local_9c._1_3_,bVar19)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar19 & 3;" (assignment_expression "bVar21 = bVar19 & 3" identifier = (binary_expression "bVar19 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar19 & 3) == 0) goto LAB_0004e534;" if (parenthesized_expression "((bVar19 & 3) == 0)" ( (binary_expression "(bVar19 & 3) == 0" (parenthesized_expression "(bVar19 & 3)" ( (binary_expression "bVar19 & 3" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e534;" goto statement_identifier ;)) (expression_statement "uVar22 = uVar31 & 7;" (assignment_expression "uVar22 = uVar31 & 7" identifier = (binary_expression "uVar31 & 7" identifier & number_literal)) ;) }))) (if_statement "if ((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }" if (parenthesized_expression "((((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0))" ( (binary_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&\n                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)" (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)\n                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1)" ( (binary_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1" (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) + number_literal) ))) )) -> field_identifier) == number_literal) )) && (parenthesized_expression "(((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)" ( (binary_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0" (parenthesized_expression "((local_90->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(local_90->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;\nLAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }\n                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }\nLAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }\n                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;\n                puVar33[-4] = local_94 + -0x3cd73;\n                puVar33[-5] = 0x4ef9b;\n                uVar25 = gettext();\n                puVar33[-2] = pp_Var2;\n                puVar33[-3] = uVar23;\n                puVar33[-4] = uVar25;\n                puVar33[-5] = 0x4efac;\n                gold::gold_error((char *)puVar33[-4]);\n                goto LAB_0004efaf;\n              }" { (expression_statement "bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;" (assignment_expression "bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count" identifier = (field_expression "(byte)(local_90->table_)._M_h._M_bucket_count" (field_expression "(byte)(local_90->table_)._M_h" (call_expression "(byte)(local_90->table_)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar19)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar19)" identifier (argument_list "(local_9c._1_3_,bVar19)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (if_statement "if ((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))\n                goto LAB_0004ec9c;" if (parenthesized_expression "((bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))" ( (binary_expression "(bVar19 >> 4 == 2) ||\n                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)" (parenthesized_expression "(bVar19 >> 4 == 2)" ( (binary_expression "bVar19 >> 4 == 2" (binary_expression "bVar19 >> 4" identifier >> number_literal) == number_literal) )) || (parenthesized_expression "(((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)" ( (binary_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0" (parenthesized_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2)" ( (binary_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin" (field_expression "(uint)(local_90->table_)._M_h" (call_expression "(uint)(local_90->table_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0004ec9c;" goto statement_identifier ;)) (labeled_statement "LAB_0004ef17:\n                if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }" statement_identifier : (if_statement "if (*(int *)(*local_e0 + 8) == 0) {\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }" if (parenthesized_expression "(*(int *)(*local_e0 + 8) == 0)" ( (binary_expression "*(int *)(*local_e0 + 8) == 0" (pointer_expression "*(int *)(*local_e0 + 8)" * (cast_expression "(int *)(*local_e0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_e0 + 8)" ( (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  puVar33[-1] = local_e0;\n                  puVar33[-2] = local_94 + -0x3c69e;\n                  puVar33[-3] = 0x5c;\n                  puVar33[-4] = (int)local_94 + -0xf8d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */\n                  puVar33[-5] = &UNK_000500bd;\n                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                }" { (expression_statement "puVar33[-1] = local_e0;" (assignment_expression "puVar33[-1] = local_e0" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-2] = local_94 + -0x3c69e;" (assignment_expression "puVar33[-2] = local_94 + -0x3c69e" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0x5c;" (assignment_expression "puVar33[-3] = 0x5c" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf8d93;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf8d93" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "puVar33[-5] = &UNK_000500bd;" (assignment_expression "puVar33[-5] = &UNK_000500bd" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = (pointer_expression "&UNK_000500bd" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) }))) (if_statement "if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }" if (parenthesized_expression "(*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_e0 + 8) + 0x49b1)" ( (binary_expression "*(int *)(*local_e0 + 8) + 0x49b1" (pointer_expression "*(int *)(*local_e0 + 8)" * (cast_expression "(int *)(*local_e0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_e0 + 8)" ( (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  if ((char)uVar22 != '\0') goto LAB_0004efaf;\n                  goto LAB_0004ec9c;\n                }" { (if_statement "if ((char)uVar22 != '\0') goto LAB_0004efaf;" if (parenthesized_expression "((char)uVar22 != '\0')" ( (binary_expression "(char)uVar22 != '\0'" (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ec9c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ef58:\n                if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }" statement_identifier : (if_statement "if (bVar21 == 2) {\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }\n                else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }" if (parenthesized_expression "(bVar21 == 2)" ( (binary_expression "bVar21 == 2" identifier == number_literal) )) (compound_statement "{\n                  puVar33[-4] = (int)local_94 + -0xf3a5d;\n                  puVar33[-5] = 0x4fcf5;\n                  uVar23 = gettext();\n                }" { (expression_statement "puVar33[-4] = (int)local_94 + -0xf3a5d;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf3a5d" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf3a5d" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "puVar33[-5] = 0x4fcf5;" (assignment_expression "puVar33[-5] = 0x4fcf5" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }" else (if_statement "if (bVar21 < 3) {\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }\n                else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }" if (parenthesized_expression "(bVar21 < 3)" ( (binary_expression "bVar21 < 3" identifier < number_literal) )) (compound_statement "{\n                  if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }\n                  puVar33[-4] = (int)local_94 + -0xf3a66;\n                  puVar33[-5] = 0x4efdd;\n                  uVar23 = gettext();\n                }" { (if_statement "if (bVar21 != 1) {\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }" if (parenthesized_expression "(bVar21 != 1)" ( (binary_expression "bVar21 != 1" identifier != number_literal) )) (compound_statement "{\n                    puVar33[-1] = uVar22;\n                    puVar33[-2] = local_94 + -0x3c75e;\n                    puVar33[-3] = 0xa4;\n                    puVar33[-4] = (int)local_94 + -0xf3b27;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */\n                    puVar33[-5] = &LAB_0005025b;\n                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);\n                  }" { (expression_statement "puVar33[-1] = uVar22;" (assignment_expression "puVar33[-1] = uVar22" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-2] = local_94 + -0x3c75e;" (assignment_expression "puVar33[-2] = local_94 + -0x3c75e" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3c75e" identifier + number_literal)) ;) (expression_statement "puVar33[-3] = 0xa4;" (assignment_expression "puVar33[-3] = 0xa4" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = (int)local_94 + -0xf3b27;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf3b27" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "puVar33[-5] = &LAB_0005025b;" (assignment_expression "puVar33[-5] = &LAB_0005025b" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = (pointer_expression "&LAB_0005025b" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);" (call_expression "do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" identifier (argument_list "((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (subscript_expression "puVar33[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar33[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-2]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "puVar33[-4] = (int)local_94 + -0xf3a66;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf3a66" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf3a66" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "puVar33[-5] = 0x4efdd;" (assignment_expression "puVar33[-5] = 0x4efdd" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }" else (compound_statement "{\n                  puVar33[-4] = (int)local_94 + -0xf3a56;\n                  puVar33[-5] = 0x4ef77;\n                  uVar23 = gettext();\n                }" { (expression_statement "puVar33[-4] = (int)local_94 + -0xf3a56;" (assignment_expression "puVar33[-4] = (int)local_94 + -0xf3a56" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_94 + -0xf3a56" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "puVar33[-5] = 0x4ef77;" (assignment_expression "puVar33[-5] = 0x4ef77" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = gettext();" (assignment_expression "uVar23 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) })))))) (expression_statement "pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;" (assignment_expression "pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data" identifier = (field_expression "((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data" (parenthesized_expression "((Output_data *)&local_90->saw_undefined_)" ( (cast_expression "(Output_data *)&local_90->saw_undefined_" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->saw_undefined_" & (field_expression "local_90->saw_undefined_" identifier -> field_identifier))) )) -> field_identifier)) ;) (expression_statement "puVar33[-4] = local_94 + -0x3cd73;" (assignment_expression "puVar33[-4] = local_94 + -0x3cd73" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "local_94 + -0x3cd73" identifier + number_literal)) ;) (expression_statement "puVar33[-5] = 0x4ef9b;" (assignment_expression "puVar33[-5] = 0x4ef9b" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar25 = gettext();" (assignment_expression "uVar25 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar33[-2] = pp_Var2;" (assignment_expression "puVar33[-2] = pp_Var2" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-3] = uVar23;" (assignment_expression "puVar33[-3] = uVar23" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = uVar25;" (assignment_expression "puVar33[-4] = uVar25" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x4efac;" (assignment_expression "puVar33[-5] = 0x4efac" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::gold_error((char *)puVar33[-4]);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error((char *)puVar33[-4]);" (call_expression "gold_error((char *)puVar33[-4])" identifier (argument_list "((char *)puVar33[-4])" ( (cast_expression "(char *)puVar33[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) ))) ;)) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ec9c:\n              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;" statement_identifier : (if_statement "if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;" if (parenthesized_expression "(((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0)" ( (binary_expression "((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1) != 0" (parenthesized_expression "((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1)" ( (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 1" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base<gold" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3].\n                         super__Vector_base" (subscript_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_[3]" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->\n                         output_lists_" (field_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment" (call_expression "(uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->offset_" & (field_expression "local_90->offset_" identifier -> field_identifier))) ))) -> field_identifier) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ef58;" goto statement_identifier ;))) (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }" else (compound_statement "{\n              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);\n              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n              bVar21 = bVar19 & 3;\n              if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }\nLAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }\nLAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n            }" { (if_statement "if ((char)uVar22 == '\x04') goto LAB_0004ecc9;" if (parenthesized_expression "((char)uVar22 == '\x04')" ( (binary_expression "(char)uVar22 == '\x04'" (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 1)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 1" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar19)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar19)" identifier (argument_list "(local_9c._1_3_,bVar19)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (expression_statement "bVar21 = bVar19 & 3;" (assignment_expression "bVar21 = bVar19 & 3" identifier = (binary_expression "bVar19 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar19 & 3) == 0) {\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }" if (parenthesized_expression "((bVar19 & 3) == 0)" ( (binary_expression "(bVar19 & 3) == 0" (parenthesized_expression "(bVar19 & 3)" ( (binary_expression "bVar19 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                goto LAB_0004e538;\n              }" { (labeled_statement "LAB_0004e534:\n                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" statement_identifier : (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;)) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) (labeled_statement "LAB_0004eee0:\n              if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }" statement_identifier : (if_statement "if ((char)uVar22 == '\x04') {\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }" if (parenthesized_expression "((char)uVar22 == '\x04')" ( (binary_expression "(char)uVar22 == '\x04'" (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;\n                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);\n                if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }\n              }" { (expression_statement "bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;" (assignment_expression "bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count" identifier = (field_expression "(byte)(local_90->table_)._M_h._M_bucket_count" (field_expression "(byte)(local_90->table_)._M_h" (call_expression "(byte)(local_90->table_)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (expression_statement "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);" (assignment_expression "local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" identifier = (parenthesized_expression "(Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" ( (binary_expression "Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT31(local_9c._1_3_,bVar19)" * (ERROR ")" )) (call_expression "CONCAT31(local_9c._1_3_,bVar19)" identifier (argument_list "(local_9c._1_3_,bVar19)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ))) ;) (if_statement "if (bVar19 >> 4 != 2) {\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }" if (parenthesized_expression "(bVar19 >> 4 != 2)" ( (binary_expression "bVar19 >> 4 != 2" (binary_expression "bVar19 >> 4" identifier >> number_literal) != number_literal) )) (compound_statement "{\n                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;\n                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);\n                  goto LAB_0004e538;\n                }" { (if_statement "if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)\n                  goto LAB_0004ef17;" if (parenthesized_expression "(((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)" ( (binary_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0" (parenthesized_expression "((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2)" ( (binary_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin._M_nxt" (field_expression "(uint)(local_90->table_)._M_h._M_before_begin" (field_expression "(uint)(local_90->table_)._M_h" (call_expression "(uint)(local_90->table_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ef17;" goto statement_identifier ;)) (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004efaf:\n              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" statement_identifier : (expression_statement "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);" (assignment_expression "bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" * (cast_expression "(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_90->table_)._M_h._M_bucket_count + 3)" ( (binary_expression "(int)&(local_90->table_)._M_h._M_bucket_count + 3" (cast_expression "(int)&(local_90->table_)._M_h._M_bucket_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_90->table_)._M_h._M_bucket_count" & (field_expression "(local_90->table_)._M_h._M_bucket_count" (field_expression "(local_90->table_)._M_h" (parenthesized_expression "(local_90->table_)" ( (field_expression "local_90->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;)) }))) (labeled_statement "LAB_0004e538:\n            if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }" statement_identifier : (if_statement "if ((bVar19 & 4) != 0) {\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }" if (parenthesized_expression "((bVar19 & 4) != 0)" ( (binary_expression "(bVar19 & 4) != 0" (parenthesized_expression "(bVar19 & 4)" ( (binary_expression "bVar19 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar33[-3] = (int)local_b8 >> 0x1f;\n              puVar33[-4] = local_b8;\n              puVar33[-5] = local_a8;\n              pSVar6 = relinfo->symtab;\n              puVar33[-6] = relinfo;\n              puVar33[-7] = local_90;\n              local_90 = pSVar6;\n              puVar33[-8] = &pSVar6->warnings_;\n                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */\n              puVar33[-9] = 0x4ec77;\n              gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));\n            }" { (expression_statement "puVar33[-3] = (int)local_b8 >> 0x1f;" (assignment_expression "puVar33[-3] = (int)local_b8 >> 0x1f" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar33[-4] = local_b8;" (assignment_expression "puVar33[-4] = local_b8" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = local_a8;" (assignment_expression "puVar33[-5] = local_a8" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pSVar6 = relinfo->symtab;" (assignment_expression "pSVar6 = relinfo->symtab" identifier = (field_expression "relinfo->symtab" identifier -> field_identifier)) ;) (expression_statement "puVar33[-6] = relinfo;" (assignment_expression "puVar33[-6] = relinfo" (subscript_expression "puVar33[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-7] = local_90;" (assignment_expression "puVar33[-7] = local_90" (subscript_expression "puVar33[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_90 = pSVar6;" (assignment_expression "local_90 = pSVar6" identifier = identifier) ;) (expression_statement "puVar33[-8] = &pSVar6->warnings_;" (assignment_expression "puVar33[-8] = &pSVar6->warnings_" (subscript_expression "puVar33[-8]" identifier [ number_literal ]) = (pointer_expression "&pSVar6->warnings_" & (field_expression "pSVar6->warnings_" identifier -> field_identifier))) ;) comment (expression_statement "puVar33[-9] = 0x4ec77;" (assignment_expression "puVar33[-9] = 0x4ec77" (subscript_expression "puVar33[-9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));" statement_identifier : (ERROR ":" :) (labeled_statement "Warnings::issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));" statement_identifier : (ERROR ":" :) (expression_statement "issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4));" (comma_expression "issue_warning<32,_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4))" (binary_expression "issue_warning<32" identifier < number_literal) , (binary_expression "_false>\n                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4))" identifier > (parenthesized_expression "((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4))" ( (comma_expression "(Warnings *)puVar33[-8],(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4))" (cast_expression "(Warnings *)puVar33[-8]" ( (type_descriptor "Warnings *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-8]" identifier [ number_literal ])) , (comma_expression "(Symbol *)puVar33[-7],\n                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4))" (cast_expression "(Symbol *)puVar33[-7]" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-7]" identifier [ number_literal ])) , (parenthesized_expression "(Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4))" ( (comma_expression "Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4)" (binary_expression "Relocate_info<32" identifier < number_literal) , (comma_expression "_false> *)puVar33[-6],puVar33[-5],\n                         *(off_t *)(puVar33 + -4)" (binary_expression "_false> *)puVar33[-6]" identifier > (pointer_expression "*)puVar33[-6]" * (ERROR ")" )) (subscript_expression "puVar33[-6]" identifier [ number_literal ]))) , (comma_expression "puVar33[-5],\n                         *(off_t *)(puVar33 + -4)" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) , (pointer_expression "*(off_t *)(puVar33 + -4)" * (cast_expression "(off_t *)(puVar33 + -4)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -4)" ( (binary_expression "puVar33 + -4" identifier + number_literal) ))))))) )))) )))) ;))) }))) }) (ERROR "}\n        puVar33[-4] = local_c4;\n        puVar33[-5] = 0x4e54f;\n        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *" } identifier [ number_literal ] = identifier ; identifier [ number_literal ] = number_literal ; identifier : : identifier < number_literal > : : ~ identifier ( ( identifier < number_literal > *) ))) (ERROR "puVar33" identifier) [ number_literal ]))) , (subscript_expression "puVar33[-3]" identifier [ number_literal ])) )) ))) ;) (expression_statement "puVar33[-4] = local_ac;" (assignment_expression "puVar33[-4] = local_ac" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x4e55b;" (assignment_expression "puVar33[-5] = 0x4e55b" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);" statement_identifier (ERROR "::Symbol_value<32>:" : : (binary_expression "Symbol_value<32" identifier < number_literal) > :) : (expression_statement "~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);" (unary_expression "~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3])" ~ (call_expression "Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3])" identifier (argument_list "((Symbol_value<32> *)puVar33[-4],puVar33[-3])" ( (parenthesized_expression "(Symbol_value<32> *)puVar33[-4],puVar33[-3])" ( (comma_expression "Symbol_value<32> *)puVar33[-4],puVar33[-3]" (binary_expression "Symbol_value<32> *)puVar33[-4]" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)puVar33[-4]" * (ERROR ")" )) (subscript_expression "puVar33[-4]" identifier [ number_literal ]))) , (subscript_expression "puVar33[-3]" identifier [ number_literal ])) )) )))) ;)) (expression_statement "puVar34 = puVar33;" (assignment_expression "puVar34 = puVar33" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" else (compound_statement "{\n        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;\n        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;\n        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;\n        *(Output_section **)((int)puVar34 + -0x10) = output_section;\n                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */\n        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;\n        local_b8 = gold::Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" { (expression_statement "*(uint *)((int)puVar34 + -4) = *(uint *)prelocs;" (assignment_expression "*(uint *)((int)puVar34 + -4) = *(uint *)prelocs" (pointer_expression "*(uint *)((int)puVar34 + -4)" * (cast_expression "(uint *)((int)puVar34 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -4)" ( (binary_expression "(int)puVar34 + -4" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(uint *)prelocs" * (cast_expression "(uint *)prelocs" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)((int)puVar34 + -8) = relinfo->data_shndx;" (assignment_expression "*(uint *)((int)puVar34 + -8) = relinfo->data_shndx" (pointer_expression "*(uint *)((int)puVar34 + -8)" * (cast_expression "(uint *)((int)puVar34 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "relinfo->data_shndx" identifier -> field_identifier)) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "relinfo->object" identifier -> field_identifier)) ;) (expression_statement "*(Output_section **)((int)puVar34 + -0x10) = output_section;" (assignment_expression "*(Output_section **)((int)puVar34 + -0x10) = output_section" (pointer_expression "*(Output_section **)((int)puVar34 + -0x10)" * (cast_expression "(Output_section **)((int)puVar34 + -0x10)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;" (assignment_expression "*(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0" (pointer_expression "*(undefined4 *)((int)puVar34 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar34 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -0x14)" ( (binary_expression "(int)puVar34 + -0x14" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_b8 = gold::" (assignment_expression "local_b8 = gold" identifier = identifier) : :) (labeled_statement "Output_section::output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));" statement_identifier : (ERROR ":" :) (expression_statement "output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4));" (call_expression "output_offset\n                             (*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4))" identifier (argument_list "(*(Output_section **)((int)puVar34 + -0x10),\n                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),\n                              *(section_offset_type *)((int)puVar34 + -4))" ( (pointer_expression "*(Output_section **)((int)puVar34 + -0x10)" * (cast_expression "(Output_section **)((int)puVar34 + -0x10)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0x10)" ( (binary_expression "(int)puVar34 + -0x10" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Relobj **)((int)puVar34 + -0xc)" * (cast_expression "(Relobj **)((int)puVar34 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar34 + -0xc)" ( (binary_expression "(int)puVar34 + -0xc" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar34 + -8)" * (cast_expression "(uint *)((int)puVar34 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -8)" ( (binary_expression "(int)puVar34 + -8" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(section_offset_type *)((int)puVar34 + -4)" * (cast_expression "(section_offset_type *)((int)puVar34 + -4)" ( (type_descriptor "section_offset_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + -4)" ( (binary_expression "(int)puVar34 + -4" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (if_statement "if (local_b8 != 0xffffffff) goto LAB_0004e1d8;" if (parenthesized_expression "(local_b8 != 0xffffffff)" ( (binary_expression "local_b8 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_0004e1d8;" goto statement_identifier ;)) }))) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (expression_statement "prelocs = prelocs + 8;" (assignment_expression "prelocs = prelocs + 8" identifier = (binary_expression "prelocs + 8" identifier + number_literal)) ;) }))) (while_statement "while (reloc_count != local_a8);" while (parenthesized_expression "(reloc_count != local_a8)" ( (binary_expression "reloc_count != local_a8" identifier != identifier) )) (expression_statement ";" ;)) }))) (return_statement "return;" return ;) })) })))
(translation_unit "void FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )\n\n{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )\n\n{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "char param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "uint param_10" type_identifier identifier) , (parameter_declaration "int *param_11" primitive_type (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "undefined1 auStack_ec [8];" type_identifier (array_declarator "auStack_ec [8]" identifier [ number_literal ]) ;) (declaration "undefined **local_e4;" type_identifier (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier)) ;) (declaration "undefined **local_e0;" type_identifier (pointer_declarator "**local_e0" * (pointer_declarator "*local_e0" * identifier)) ;) (declaration "undefined4 *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "char local_d1;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte **local_c4;" type_identifier (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)) ;) (declaration "int *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "int *local_bc;" primitive_type (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "byte **local_ac;" type_identifier (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "undefined4 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "byte **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "byte **local_9c;" type_identifier (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined **local_94;" type_identifier (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "undefined4 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined1 local_82 [2];" type_identifier (array_declarator "local_82 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_80 [4];" type_identifier (array_declarator "local_80 [4]" identifier [ number_literal ]) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char local_74;" primitive_type identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "byte *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "byte *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "byte local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "local_94 = &__DT_PLTGOT;" (assignment_expression "local_94 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_d1 = param_7;" (assignment_expression "local_d1 = param_7" identifier = identifier) ;) (if_statement "if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }" if (parenthesized_expression "(param_3 != 9)" ( (binary_expression "param_3 != 9" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }" { (expression_statement "FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");" (call_expression "FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section")" identifier (argument_list "("../../gold/i386.cc",0xe64,"relocate_section")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_section"" " string_content ") ))) ;) })) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (int *)param_2[2];" (assignment_expression "local_c0 = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar2 = *(code **)(*local_c0 + 0x8c);" (assignment_expression "pcVar2 = *(code **)(*local_c0 + 0x8c)" identifier = (pointer_expression "*(code **)(*local_c0 + 0x8c)" * (cast_expression "(code **)(*local_c0 + 0x8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_c0 + 0x8c)" ( (binary_expression "*local_c0 + 0x8c" (pointer_expression "*local_c0" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" if (parenthesized_expression "(pcVar2 == FUN_00054e30)" ( (binary_expression "pcVar2 == FUN_00054e30" identifier == identifier) )) (compound_statement "{\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }" { (expression_statement "local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);" (assignment_expression "local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0)" identifier = (cast_expression "(undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*local_c0 + 0xbc))(local_c0)" (parenthesized_expression "(**(code **)(*local_c0 + 0xbc))" ( (pointer_expression "**(code **)(*local_c0 + 0xbc)" * (pointer_expression "*(code **)(*local_c0 + 0xbc)" * (cast_expression "(code **)(*local_c0 + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_c0 + 0xbc)" ( (binary_expression "*local_c0 + 0xbc" (pointer_expression "*local_c0" * identifier) + number_literal) ))))) )) (argument_list "(local_c0)" ( identifier ))))) ;) }) (else_clause "else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" else (compound_statement "{\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" { (expression_statement "local_dc = (undefined4 *)(*pcVar2)(local_c0);" (assignment_expression "local_dc = (undefined4 *)(*pcVar2)(local_c0)" identifier = (cast_expression "(undefined4 *)(*pcVar2)(local_c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)(local_c0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(local_c0)" ( identifier ))))) ;) }))) (expression_statement "puVar21 = auStack_ec;" (assignment_expression "puVar21 = auStack_ec" identifier = identifier) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = local_94 + 0xbc;" (assignment_expression "local_e4 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (expression_statement "puVar6 = auStack_ec;" (assignment_expression "puVar6 = auStack_ec" identifier = identifier) ;) (expression_statement "local_e0 = local_e4;" (assignment_expression "local_e0 = local_e4" identifier = identifier) ;) (if_statement "if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }" { (do_statement "do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);" do (compound_statement "{\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    }" { (expression_statement "puVar21 = puVar6;" (assignment_expression "puVar21 = puVar6" identifier = identifier) ;) (expression_statement "local_b8 = *param_4;" (assignment_expression "local_b8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" if (parenthesized_expression "(local_d1 == '\0')" ( (binary_expression "local_d1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }" { (labeled_statement "LAB_0004e1d8:\n        local_6c = (byte *)0x0;" statement_identifier : (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_68 = 0xffffffff;" (assignment_expression "local_68 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "local_64 = 0x80000000;" (assignment_expression "local_64 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (undefined4 *)(uVar10 >> 8);" (assignment_expression "local_a4 = (undefined4 *)(uVar10 >> 8)" identifier = (cast_expression "(undefined4 *)(uVar10 >> 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" if (parenthesized_expression "(local_a4 < local_dc)" ( (binary_expression "local_a4 < local_dc" identifier < identifier) )) (compound_statement "{\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }" { (if_statement "if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }" if (parenthesized_expression "((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))" ( (binary_expression "(param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (parenthesized_expression "(param_11 != (int *)0x0)" ( (binary_expression "param_11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" ( (comma_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0" (assignment_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4)" identifier = (pointer_expression "*(undefined4 **)(*param_11 + local_a8 * 4)" * (cast_expression "(undefined4 **)(*param_11 + local_a8 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_11 + local_a8 * 4)" ( (binary_expression "*param_11 + local_a8 * 4" (pointer_expression "*param_11" * identifier) + (binary_expression "local_a8 * 4" identifier * number_literal)) ))))) , (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }" { (labeled_statement "LAB_0004e238:\n            pbVar14 = (byte *)local_90[4];" statement_identifier : (expression_statement "pbVar14 = (byte *)local_90[4];" (assignment_expression "pbVar14 = (byte *)local_90[4]" identifier = (cast_expression "(byte *)local_90[4]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[4]" identifier [ number_literal ]))) ;)) (expression_statement "pbVar17 = pbVar14 + -1;" (assignment_expression "pbVar17 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;" if (parenthesized_expression "(pbVar17 < (byte *)0xfffffffe)" ( (binary_expression "pbVar17 < (byte *)0xfffffffe" identifier < (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f6b0;" goto statement_identifier ;)) (labeled_statement "LAB_0004e24d:\n            local_6c = (byte *)0xffffffff;" statement_identifier : (expression_statement "local_6c = (byte *)0xffffffff;" (assignment_expression "local_6c = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar14 = local_6c;" (assignment_expression "pbVar14 = local_6c" identifier = identifier) ;) (goto_statement "goto LAB_0004e254;" goto statement_identifier ;) })) (expression_statement "local_90 = (undefined4 *)local_c0[0x38];" (assignment_expression "local_90 = (undefined4 *)local_c0[0x38]" identifier = (cast_expression "(undefined4 *)local_c0[0x38]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0x38]" identifier [ number_literal ]))) ;) (if_statement "if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4)" ( (binary_expression "(undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4" (cast_expression "(undefined4 *)((int)local_90 - local_c0[0x37] >> 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 - local_c0[0x37] >> 4)" ( (binary_expression "(int)local_90 - local_c0[0x37] >> 4" (binary_expression "(int)local_90 - local_c0[0x37]" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c62b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x8c1;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x8c1" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x50169;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x50169" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);" (assignment_expression "local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10)" identifier = (cast_expression "(byte **)(local_c0[0x37] + (int)local_a4 * 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c0[0x37] + (int)local_a4 * 0x10)" ( (binary_expression "local_c0[0x37] + (int)local_a4 * 0x10" (subscript_expression "local_c0[0x37]" identifier [ number_literal ]) + (binary_expression "(int)local_a4 * 0x10" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "local_b0 = (uint)local_9c[2] & 0x7ffffff;" (assignment_expression "local_b0 = (uint)local_9c[2] & 0x7ffffff" identifier = (binary_expression "(uint)local_9c[2] & 0x7ffffff" (cast_expression "(uint)local_9c[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_9c[2]" identifier [ number_literal ])) & number_literal)) ;) (if_statement "if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0))" ( (binary_expression "((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)" (parenthesized_expression "((*(byte *)((int)local_9c + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_9c + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_9c + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_9c + 0xb) & 8" (pointer_expression "*(byte *)((int)local_9c + 0xb)" * (cast_expression "(byte *)((int)local_9c + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0xb)" ( (binary_expression "(int)local_9c + 0xb" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_90 = (undefined4 *)0x0;" (assignment_expression "local_90 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (expression_statement "local_90 = (undefined4 *)local_c0[0xf];" (assignment_expression "local_90 = (undefined4 *)local_c0[0xf]" identifier = (cast_expression "(undefined4 *)local_c0[0xf]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0xf]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0)" ( (binary_expression "(uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0" (call_expression "(uint)((int)local_90 - local_c0[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - local_c0[0xe] >> 2)" ( (binary_expression "(int)local_90 - local_c0[0xe] >> 2" (binary_expression "(int)local_90 - local_c0[0xe]" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }" { (expression_statement "*(uint *)(puVar21 + -4) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -4) = local_b0" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c6d7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_000502ba" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);" (assignment_expression "local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4)" identifier = (pointer_expression "*(undefined4 **)(local_c0[0xe] + local_b0 * 4)" * (cast_expression "(undefined4 **)(local_c0[0xe] + local_b0 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c0[0xe] + local_b0 * 4)" ( (binary_expression "local_c0[0xe] + local_b0 * 4" (subscript_expression "local_c0[0xe]" identifier [ number_literal ]) + (binary_expression "local_b0 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(local_90 != (undefined4 *)0x0)" ( (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" { (expression_statement "local_90 = (undefined4 *)0x0;" (assignment_expression "local_90 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (expression_statement "*(uint *)(puVar21 + -8) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -8) = local_b0" (pointer_expression "*(uint *)(puVar21 + -8)" * (cast_expression "(uint *)(puVar21 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0xc) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_c0" (pointer_expression "*(int **)(puVar21 + -0xc)" * (cast_expression "(int **)(puVar21 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = *param_2;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = *param_2" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4fd1a" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_0014ebc0();" (assignment_expression "cVar7 = FUN_0014ebc0()" identifier = (call_expression "FUN_0014ebc0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }" { (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0004e2a0;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f331:\n          local_ac = &local_6c;" statement_identifier : (expression_statement "local_ac = &local_6c;" (assignment_expression "local_ac = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "iVar15 = *local_c0;" (assignment_expression "iVar15 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -8) = param_2[6];" (assignment_expression "*(undefined4 *)(puVar21 + -8) = param_2[6]" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(puVar21 + -0xc) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_c0" (pointer_expression "*(int **)(puVar21 + -0xc)" * (cast_expression "(int **)(puVar21 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = &local_5c;" (assignment_expression "local_c4 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_5c = (byte *)0x0;" (assignment_expression "local_5c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_54 = 0x80000000;" (assignment_expression "local_54 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar2 = *(code **)(iVar15 + 0x40);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0x40)" identifier = (pointer_expression "*(code **)(iVar15 + 0x40)" * (cast_expression "(code **)(iVar15 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x40)" ( (binary_expression "iVar15 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f375;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f375" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -4;" (assignment_expression "puVar20 = puVar21 + -4" identifier = (binary_expression "puVar21 + -4" identifier + number_literal)) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = local_b4 == 0;" (assignment_expression "bVar25 = local_b4 == 0" identifier = (binary_expression "local_b4 == 0" identifier == number_literal)) ;) (if_statement "if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }" { (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3ac3);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3ac3)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3ac3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3ac3)" ( (binary_expression "(int)local_94 + -0xf3ac3" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar14;" (assignment_expression "bVar23 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar14;" (assignment_expression "bVar25 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3ceaf;" (assignment_expression "ppuVar19 = local_94 + -0x3ceaf" identifier = (binary_expression "local_94 + -0x3ceaf" identifier + number_literal)) ;) (do_statement "do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);" do (compound_statement "{\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar24 = *pbVar17 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3cead;" (assignment_expression "ppuVar19 = local_94 + -0x3cead" identifier = (binary_expression "local_94 + -0x3cead" identifier + number_literal)) ;) (do_statement "do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);" do (compound_statement "{\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar17 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3aa2);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3aa2)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3aa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3aa2)" ( (binary_expression "(int)local_94 + -0xf3aa2" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3cea7;" (assignment_expression "ppuVar19 = local_94 + -0x3cea7" identifier = (binary_expression "local_94 + -0x3cea7" identifier + number_literal)) ;) (do_statement "do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);" do (compound_statement "{\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar17 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" { (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3a96);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3a96)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3a96)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3a96)" ( (binary_expression "(int)local_94 + -0xf3a96" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);" do (compound_statement "{\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" { (expression_statement "iVar15 = 10;" (assignment_expression "iVar15 = 10" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf1212);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf1212)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf1212)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf1212)" ( (binary_expression "(int)local_94 + -0xf1212" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);" do (compound_statement "{\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }" { (expression_statement "iVar15 = 0x12;" (assignment_expression "iVar15 = 0x12" identifier = number_literal) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3a91);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3a91)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3a91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3a91)" ( (binary_expression "(int)local_94 + -0xf3a91" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);" do (compound_statement "{\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;" if (parenthesized_expression "((!bVar24 && !bVar23) != bVar24)" ( (binary_expression "(!bVar24 && !bVar23) != bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_0004f50a;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0004f5da;" goto statement_identifier ;) })) })) })) })) })) })) (labeled_statement "LAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;" statement_identifier : (expression_statement "*(undefined1 ***)(puVar21 + -8) = local_34;" (assignment_expression "*(undefined1 ***)(puVar21 + -8) = local_34" (pointer_expression "*(undefined1 ***)(puVar21 + -8)" * (cast_expression "(undefined1 ***)(puVar21 + -8)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(byte ***)(puVar21 + -0xc) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0xc) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0xc)" * (cast_expression "(byte ***)(puVar21 + -0xc)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar21 + -0x10) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -0x10) = local_b0" (pointer_expression "*(uint *)(puVar21 + -0x10)" * (cast_expression "(uint *)(puVar21 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x14) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0x14) = local_c0" (pointer_expression "*(int **)(puVar21 + -0x14)" * (cast_expression "(int **)(puVar21 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f3cd" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = FUN_000c2280();" (assignment_expression "iVar15 = FUN_000c2280()" identifier = (call_expression "FUN_000c2280()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }" if (parenthesized_expression "((char)local_34[0] != '\0')" ( (binary_expression "(char)local_34[0] != '\0'" (cast_expression "(char)local_34[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_34[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_50 = local_9c[3] + iVar15;\n            }" { (expression_statement "local_50 = local_9c[3] + iVar15;" (assignment_expression "local_50 = local_9c[3] + iVar15" identifier = (binary_expression "local_9c[3] + iVar15" (subscript_expression "local_9c[3]" identifier [ number_literal ]) + identifier)) ;) })) (expression_statement "local_b4 = 1;" (assignment_expression "local_b4 = 1" identifier = number_literal) ;) (expression_statement "puVar21 = puVar21 + -4;" (assignment_expression "puVar21 = puVar21 + -4" identifier = (binary_expression "puVar21 + -4" identifier + number_literal)) ;) }) (else_clause "else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" else (compound_statement "{\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" { (if_statement "if (local_b4 == 1) goto LAB_0004f3ac;" if (parenthesized_expression "(local_b4 == 1)" ( (binary_expression "local_b4 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004f3ac;" goto statement_identifier ;)) (if_statement "if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" if (parenthesized_expression "(local_b4 == 3)" ( (binary_expression "local_b4 == 3" identifier == number_literal) )) (compound_statement "{\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }" { (labeled_statement "LAB_0004f50a:\n              uVar11 = param_2[2];" statement_identifier : (expression_statement "uVar11 = param_2[2];" (assignment_expression "uVar11 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;)) (if_statement "if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" if (parenthesized_expression "(local_90 == (undefined4 *)0x0)" ( (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }" { (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_a4;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_a4" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f94d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f94d" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = FUN_000c62d0();" (assignment_expression "uVar13 = FUN_000c62d0()" identifier = (call_expression "FUN_000c62d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;" (assignment_expression "*(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa" (pointer_expression "*(undefined ***)(puVar21 + -0x14)" * (cast_expression "(undefined ***)(puVar21 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdfa" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f965;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f965" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_a4;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_a4" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" * (cast_expression "(undefined4 **)(puVar21 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = uVar12;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = uVar12" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x18)" * (cast_expression "(int *)(puVar21 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x1c) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x1c) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x1c)" * (cast_expression "(uint *)(puVar21 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x20) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x20) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x20)" * (cast_expression "(int *)(puVar21 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x24) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x24) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x24)" * (cast_expression "(undefined4 **)(puVar21 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x28) = 0x4f98d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x28) = 0x4f98d" (pointer_expression "*(undefined4 *)(puVar21 + -0x28)" * (cast_expression "(undefined4 *)(puVar21 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -4;" (assignment_expression "puVar20 = puVar21 + -4" identifier = (binary_expression "puVar21 + -4" identifier + number_literal)) ;) }) (else_clause "else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" else (compound_statement "{\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" { (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 ***)(puVar21 + -0x14) = local_34;" (assignment_expression "*(undefined1 ***)(puVar21 + -0x14) = local_34" (pointer_expression "*(undefined1 ***)(puVar21 + -0x14)" * (cast_expression "(undefined1 ***)(puVar21 + -0x14)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f536;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f536" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0014f9f0();" (call_expression "FUN_0014f9f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = local_34[0];" (assignment_expression "puVar6 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;" (assignment_expression "*(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4" (pointer_expression "*(undefined ***)(puVar21 + -0x18)" * (cast_expression "(undefined ***)(puVar21 + -0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cde4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1c) = 0x4f54d" (pointer_expression "*(undefined4 *)(puVar21 + -0x1c)" * (cast_expression "(undefined4 *)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = puVar6;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = puVar6" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" * (cast_expression "(undefined4 *)(puVar21 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x20) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x20) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x20)" * (cast_expression "(uint *)(puVar21 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x24) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x24) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x24)" * (cast_expression "(int *)(puVar21 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x28) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x28) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x28)" * (cast_expression "(undefined4 **)(puVar21 + -0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = 0x4f570;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = 0x4f570" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" * (cast_expression "(undefined4 *)(puVar21 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -8;" (assignment_expression "puVar20 = puVar21 + -8" identifier = (binary_expression "puVar21 + -8" identifier + number_literal)) ;) (if_statement "if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }" { (expression_statement "*(undefined1 **)(puVar21 + -0x18) = local_34[0];" (assignment_expression "*(undefined1 **)(puVar21 + -0x18) = local_34[0]" (pointer_expression "*(undefined1 **)(puVar21 + -0x18)" * (cast_expression "(undefined1 **)(puVar21 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1c) = 0x4f586;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1c) = 0x4f586" (pointer_expression "*(undefined4 *)(puVar21 + -0x1c)" * (cast_expression "(undefined4 *)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar21 + -8;" (assignment_expression "puVar20 = puVar21 + -8" identifier = (binary_expression "puVar21 + -8" identifier + number_literal)) ;) })) }))) (expression_statement "*(undefined1 **)(puVar20 + -4) = local_82;" (assignment_expression "*(undefined1 **)(puVar20 + -4) = local_82" (pointer_expression "*(undefined1 **)(puVar20 + -4)" * (cast_expression "(undefined1 **)(puVar20 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -8) = local_80;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_80" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_a4;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_a4" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f5a3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = FUN_000c5610();" (assignment_expression "iVar15 = FUN_000c5610()" identifier = (call_expression "FUN_000c5610()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }" { (expression_statement "*(int **)(puVar20 + -8) = &local_7c;" (assignment_expression "*(int **)(puVar20 + -8) = &local_7c" (pointer_expression "*(int **)(puVar20 + -8)" * (cast_expression "(int **)(puVar20 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0xc) = iVar15;" (assignment_expression "*(int *)(puVar20 + -0xc) = iVar15" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f844;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f844" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = FUN_000c24f0();" (assignment_expression "iVar15 = FUN_000c24f0()" identifier = (call_expression "FUN_000c24f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }" if (parenthesized_expression "(local_7c != 0)" ( (binary_expression "local_7c != 0" identifier != number_literal) )) (compound_statement "{\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }" { (expression_statement "*(int *)(puVar20 + -0xc) = local_7c;" (assignment_expression "*(int *)(puVar20 + -0xc) = local_7c" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff50;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff50" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_000c62d0();" (assignment_expression "uVar11 = FUN_000c62d0()" identifier = (call_expression "FUN_000c62d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;" (assignment_expression "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf" (pointer_expression "*(undefined ***)(puVar20 + -0x10)" * (cast_expression "(undefined ***)(puVar20 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdcf" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff68;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff68" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff77;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff77" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082930();" (call_expression "FUN_00082930()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }" { (expression_statement "uVar11 = *(undefined4 *)(iVar15 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar15 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar15 + 4)" * (cast_expression "(undefined4 *)(iVar15 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;" (assignment_expression "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7" (pointer_expression "*(undefined ***)(puVar20 + -0x10)" * (cast_expression "(undefined ***)(puVar20 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdc7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f876;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f876" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f87f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f87f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082930();" (call_expression "FUN_00082930()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "local_b4 = 3;" (assignment_expression "local_b4 = 3" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" else (compound_statement "{\nLAB_0004f5da:\n              local_b4 = 2;\n            }" { (labeled_statement "LAB_0004f5da:\n              local_b4 = 2;" statement_identifier : (expression_statement "local_b4 = 2;" (assignment_expression "local_b4 = 2" identifier = number_literal) ;)) }))) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) }))) (if_statement "if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }" if (parenthesized_expression "(local_5c != (byte *)0x0)" ( (binary_expression "local_5c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c71c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x50110;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x50110" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = (byte *)0xffffffff;" (assignment_expression "local_5c = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }" if (parenthesized_expression "(local_4c != local_44)" ( (binary_expression "local_4c != local_44" identifier != identifier) )) (compound_statement "{\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }" { (expression_statement "*(byte **)(puVar21 + -0x10) = local_4c;" (assignment_expression "*(byte **)(puVar21 + -0x10) = local_4c" (pointer_expression "*(byte **)(puVar21 + -0x10)" * (cast_expression "(byte **)(puVar21 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f41b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f41b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_9c = &local_5c;" (assignment_expression "local_9c = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" else (compound_statement "{\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" { (if_statement "if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;" if (parenthesized_expression "((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))" ( (binary_expression "(param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (parenthesized_expression "(param_11 != (int *)0x0)" ( (binary_expression "param_11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" ( (comma_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0" (assignment_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4)" identifier = (pointer_expression "*(undefined4 **)(*param_11 + local_a8 * 4)" * (cast_expression "(undefined4 **)(*param_11 + local_a8 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_11 + local_a8 * 4)" ( (binary_expression "*param_11 + local_a8 * 4" (pointer_expression "*param_11" * identifier) + (binary_expression "local_a8 * 4" identifier * number_literal)) ))))) , (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004e238;" goto statement_identifier ;)) (if_statement "if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }" if (parenthesized_expression "(local_a4 < (undefined4 *)local_c0[0x2c])" ( (binary_expression "local_a4 < (undefined4 *)local_c0[0x2c]" identifier < (cast_expression "(undefined4 *)local_c0[0x2c]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0x2c]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }" { (labeled_statement "LAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;" statement_identifier : (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c70f" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x17f;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x17f" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_00050131;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_00050131" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_00050131" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = (int)local_a4 - local_c0[0x2c];" (assignment_expression "uVar10 = (int)local_a4 - local_c0[0x2c]" identifier = (binary_expression "(int)local_a4 - local_c0[0x2c]" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_90 = (undefined4 *)local_c0[0x30];" (assignment_expression "local_90 = (undefined4 *)local_c0[0x30]" identifier = (cast_expression "(undefined4 *)local_c0[0x30]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_c0[0x30]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10)" ( (binary_expression "(uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10" (call_expression "(uint)((int)local_90 - local_c0[0x2f] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 - local_c0[0x2f] >> 2)" ( (binary_expression "(int)local_90 - local_c0[0x2f] >> 2" (binary_expression "(int)local_90 - local_c0[0x2f]" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "local_c0[0x2f]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c6c2" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x5018a;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x5018a" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);" (assignment_expression "local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" identifier = (pointer_expression "*(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" * (cast_expression "(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c0[0x2f] + uVar10 * 4)" ( (binary_expression "local_c0[0x2f] + uVar10 * 4" (subscript_expression "local_c0[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_90 == (undefined4 *)0x0) goto LAB_00050110;" if (parenthesized_expression "(local_90 == (undefined4 *)0x0)" ( (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050110;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e238;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" * (cast_expression "(undefined4 **)(puVar21 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = *param_2;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = *param_2" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f795;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f795" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_90 = (undefined4 *)FUN_0014ec30();" (assignment_expression "local_90 = (undefined4 *)FUN_0014ec30()" identifier = (cast_expression "(undefined4 *)FUN_0014ec30()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014ec30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar14 = (byte *)local_90[4];" (assignment_expression "pbVar14 = (byte *)local_90[4]" identifier = (cast_expression "(byte *)local_90[4]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[4]" identifier [ number_literal ]))) ;) (expression_statement "pbVar17 = pbVar14 + -1;" (assignment_expression "pbVar17 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) (if_statement "if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }" if (parenthesized_expression "((byte *)0xfffffffd < pbVar17)" ( (binary_expression "(byte *)0xfffffffd < pbVar17" (cast_expression "(byte *)0xfffffffd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }" { (if_statement "if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }" if (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c71c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_0004f7d9" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0004e24d;" goto statement_identifier ;) })) (if_statement "if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }" if (parenthesized_expression "((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe))" ( (binary_expression "(local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)" (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_6c != (byte *)0xfffffffe)" ( (binary_expression "local_6c != (byte *)0xfffffffe" identifier != (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c715" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x70c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x70c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x500a1;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x500a1" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;" statement_identifier : (if_statement "if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;" if (parenthesized_expression "(pbVar17 == (byte *)0xfffffffd)" ( (binary_expression "pbVar17 == (byte *)0xfffffffd" identifier == (cast_expression "(byte *)0xfffffffd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050198;" goto statement_identifier ;))) (labeled_statement "LAB_0004e254:\n          local_6c = pbVar14;" statement_identifier : (expression_statement "local_6c = pbVar14;" (assignment_expression "local_6c = pbVar14" identifier = identifier) ;)) (expression_statement "local_60 = local_90[0xc];" (assignment_expression "local_60 = local_90[0xc]" identifier = (subscript_expression "local_90[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" if (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) == 6)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) == 6" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_64 = local_64 | 0x20000000;\n          }" { (expression_statement "local_64 = local_64 | 0x20000000;" (assignment_expression "local_64 = local_64 | 0x20000000" identifier = (binary_expression "local_64 | 0x20000000" identifier | number_literal)) ;) }) (else_clause "else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" else (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" if (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) == 10)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) == 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_64 = local_64 | 0x40000000;\n          }" { (expression_statement "local_64 = local_64 | 0x40000000;" (assignment_expression "local_64 = local_64 | 0x40000000" identifier = (binary_expression "local_64 | 0x40000000" identifier | number_literal)) ;) })))) (if_statement "if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" if (parenthesized_expression "((char)*(byte *)((int)local_90 + 0x2b) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_90 + 0x2b) < '\0'" (cast_expression "(char)*(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }" { (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" { (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }" if (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }" { (labeled_statement "LAB_0004f318:\n                local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (goto_statement "goto LAB_0004f331;" goto statement_identifier ;) })) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" else (compound_statement "{\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" { (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004f318;" goto statement_identifier ;)) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" else (compound_statement "{\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" { (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_0004e2a0:\n          local_ac = &local_6c;" statement_identifier : (expression_statement "local_ac = &local_6c;" (assignment_expression "local_ac = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (expression_statement "local_5c = (byte *)0x0;" (assignment_expression "local_5c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_54 = 0x80000000;" (assignment_expression "local_54 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_c4 = &local_5c;" (assignment_expression "local_c4 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_b0 = uVar10 & 0xff;" (assignment_expression "local_b0 = uVar10 & 0xff" identifier = (binary_expression "uVar10 & 0xff" identifier & number_literal)) ;) (expression_statement "local_c8 = param_9 + local_b8;" (assignment_expression "local_c8 = param_9 + local_b8" identifier = (binary_expression "param_9 + local_b8" identifier + identifier)) ;) (if_statement "if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" if (parenthesized_expression "(((int)local_b8 < 0) || (param_10 <= local_b8))" ( (binary_expression "((int)local_b8 < 0) || (param_10 <= local_b8)" (parenthesized_expression "((int)local_b8 < 0)" ( (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(param_10 <= local_b8)" ( (binary_expression "param_10 <= local_b8" identifier <= identifier) ))) )) (compound_statement "{\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }" { (expression_statement "local_a4 = (undefined4 *)0x0;" (assignment_expression "local_a4 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (if_statement "if (local_74 != '\0') goto LAB_0004f130;" if (parenthesized_expression "(local_74 != '\0')" ( (binary_expression "local_74 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f130;" goto statement_identifier ;)) (labeled_statement "LAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;" statement_identifier : (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a7f" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f1d7" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x14)" * (cast_expression "(int *)(puVar21 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x18) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x18) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x18)" * (cast_expression "(uint *)(puVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4f1f4" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" else (compound_statement "{\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" { (expression_statement "local_a4 = (undefined4 *)(local_b8 + param_8);" (assignment_expression "local_a4 = (undefined4 *)(local_b8 + param_8)" identifier = (cast_expression "(undefined4 *)(local_b8 + param_8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b8 + param_8)" ( (binary_expression "local_b8 + param_8" identifier + identifier) )))) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (if_statement "if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" if (parenthesized_expression "(local_74 == '\0')" ( (binary_expression "local_74 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }" { (labeled_statement "LAB_0004e30b:\n            ppuVar19 = local_94;" statement_identifier : (expression_statement "ppuVar19 = local_94;" (assignment_expression "ppuVar19 = local_94" identifier = identifier) ;)) (if_statement "if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;" if (parenthesized_expression "(local_a4 == (undefined4 *)0x0)" ( (binary_expression "local_a4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f1c0;" goto statement_identifier ;)) (expression_statement "local_4c = (byte *)0x0;" (assignment_expression "local_4c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = 0xffffffff;" (assignment_expression "local_48 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_bc = (int *)param_2[2];" (assignment_expression "local_bc = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[1] = 0;" (assignment_expression "local_44[1] = 0" (subscript_expression "local_44[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[2] = 0;" (assignment_expression "local_44[2] = 0" (subscript_expression "local_44[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_44[3] = 0x80;" (assignment_expression "local_44[3] = 0x80" (subscript_expression "local_44[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" if (parenthesized_expression "(local_90 == (undefined4 *)0x0)" ( (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }" { (if_statement "if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }" if (parenthesized_expression "((*(byte *)((int)local_9c + 0xb) & 0x40) != 0)" ( (binary_expression "(*(byte *)((int)local_9c + 0xb) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)local_9c + 0xb) & 0x40)" ( (binary_expression "*(byte *)((int)local_9c + 0xb) & 0x40" (pointer_expression "*(byte *)((int)local_9c + 0xb)" * (cast_expression "(byte *)((int)local_9c + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0xb)" ( (binary_expression "(int)local_9c + 0xb" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }" { (expression_statement "uVar10 = local_78[1];" (assignment_expression "uVar10 = local_78[1]" identifier = (subscript_expression "local_78[1]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar10 >> 8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar10 >> 8" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (binary_expression "uVar10 >> 8" identifier >> number_literal)) ;) (expression_statement "*(int **)(puVar21 + -0x10) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0x10) = local_bc" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f227;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f227" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_000c21d0();" (assignment_expression "cVar7 = FUN_000c21d0()" identifier = (call_expression "FUN_000c21d0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }" { (expression_statement "piVar5 = *(int **)(param_1 + 0x18);" (assignment_expression "piVar5 = *(int **)(param_1 + 0x18)" identifier = (pointer_expression "*(int **)(param_1 + 0x18)" * (cast_expression "(int **)(param_1 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }" { (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x50363;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x50363" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000494c0();" (call_expression "FUN_000494c0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;" statement_identifier : (expression_statement "*(undefined ***)(puVar21 + -4) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar21 + -4) = ppuVar19" (pointer_expression "*(undefined ***)(puVar21 + -4)" * (cast_expression "(undefined ***)(puVar21 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c624" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c624" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3ca3" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_0005038b;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_0005038b" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_0005038b" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 1) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 1)" ( (binary_expression "*(byte *)(piVar5 + 7) & 1" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00050363;" goto statement_identifier ;)) (expression_statement "local_9c = (byte **)piVar5[1];" (assignment_expression "local_9c = (byte **)piVar5[1]" identifier = (cast_expression "(byte **)piVar5[1]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "local_98 = piVar5[2];" (assignment_expression "local_98 = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar5[0x10];" (assignment_expression "iVar15 = piVar5[0x10]" identifier = (subscript_expression "piVar5[0x10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = *piVar5;" (assignment_expression "iVar16 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*(int **)(puVar21 + -0x10) = piVar5;" (assignment_expression "*(int **)(puVar21 + -0x10) = piVar5" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar16 + 100);" (assignment_expression "pcVar2 = *(code **)(iVar16 + 100)" identifier = (pointer_expression "*(code **)(iVar16 + 100)" * (cast_expression "(code **)(iVar16 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 100)" ( (binary_expression "iVar16 + 100" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f274;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f274" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar16 = (*pcVar2)();" (assignment_expression "iVar16 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar18 = (iVar15 + 1) * iVar16;" (assignment_expression "uVar18 = (iVar15 + 1) * iVar16" identifier = (binary_expression "(iVar15 + 1) * iVar16" (parenthesized_expression "(iVar15 + 1)" ( (binary_expression "iVar15 + 1" identifier + number_literal) )) * identifier)) ;) (expression_statement "bVar23 = CARRY4(uVar18,(uint)local_9c);" (assignment_expression "bVar23 = CARRY4(uVar18,(uint)local_9c)" identifier = (call_expression "CARRY4(uVar18,(uint)local_9c)" identifier (argument_list "(uVar18,(uint)local_9c)" ( identifier , (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_9c = (byte **)(uVar18 + (int)local_9c);" (assignment_expression "local_9c = (byte **)(uVar18 + (int)local_9c)" identifier = (cast_expression "(byte **)(uVar18 + (int)local_9c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar18 + (int)local_9c)" ( (binary_expression "uVar18 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_98 = local_98 + (uint)bVar23;" (assignment_expression "local_98 = local_98 + (uint)bVar23" identifier = (binary_expression "local_98 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar15 = *local_bc;" (assignment_expression "iVar15 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar10 >> 8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar10 >> 8" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (binary_expression "uVar10 >> 8" identifier >> number_literal)) ;) (expression_statement "*(int **)(puVar21 + -0x10) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0x10) = local_bc" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar15 + 0xa8);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0xa8)" identifier = (pointer_expression "*(code **)(iVar15 + 0xa8)" * (cast_expression "(code **)(iVar15 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xa8)" ( (binary_expression "iVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f2ae" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_40 = (*pcVar2)();" (assignment_expression "local_40 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "local_40 = local_40 + (int)local_9c;" (assignment_expression "local_40 = local_40 + (int)local_9c" identifier = (binary_expression "local_40 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) })) })) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (if_statement "if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }" if (parenthesized_expression "(local_b0 < 0xfc)" ( (binary_expression "local_b0 < 0xfc" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }" { (expression_statement "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))" ( (pointer_expression "*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" * (cast_expression "(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[local_b0 - 0x3cb99] + (int)local_94)" ( (binary_expression "local_94[local_b0 - 0x3cb99] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cb99]" identifier [ (binary_expression "local_b0 - 0x3cb99" identifier - number_literal) ]) + (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0004e736:\n              local_a0 = &local_4c;" statement_identifier : (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;)) (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3ceb6" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e847;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e847" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -0xc) = local_b0" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *local_78;" (assignment_expression "uVar10 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar21 + -0x18) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -0x18) = uVar10" (pointer_expression "*(uint *)(puVar21 + -0x18)" * (cast_expression "(uint *)(puVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4e867;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4e867" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" else (compound_statement "{\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" { (if_statement "if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }" if (parenthesized_expression "(((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1))" ( (binary_expression "((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)" (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) != 10)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) != 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(local_b0 != 1)" ( (binary_expression "local_b0 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = local_b0 - 1;" (assignment_expression "uVar10 = local_b0 - 1" identifier = (binary_expression "local_b0 - 1" identifier - number_literal)) ;) (if_statement "if (uVar10 < 0x2b) goto LAB_0004f078;" if (parenthesized_expression "(uVar10 < 0x2b)" ( (binary_expression "uVar10 < 0x2b" identifier < number_literal) )) (goto_statement "goto LAB_0004f078;" goto statement_identifier ;)) (labeled_statement "LAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" statement_identifier : (if_statement "if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" if (parenthesized_expression "(local_90[6] != -1)" ( (binary_expression "local_90[6] != -1" (subscript_expression "local_90[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" { (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }" if (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) != 10)" ( (binary_expression "(*(byte *)(local_90 + 10) & 0xf) != 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" ( (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }" { (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar18;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar18" (pointer_expression "*(uint *)(puVar21 + -0xc)" * (cast_expression "(uint *)(puVar21 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e3c4" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055ca0();" (assignment_expression "cVar7 = FUN_00055ca0()" identifier = (call_expression "FUN_00055ca0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') goto LAB_0004e466;" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }" if (parenthesized_expression "(((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0))" ( (binary_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)" (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(local_90[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(local_90[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(local_90[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(local_90[2] + 0x2c) & 1" (pointer_expression "*(byte *)(local_90[2] + 0x2c)" * (cast_expression "(byte *)(local_90[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90[2] + 0x2c)" ( (binary_expression "local_90[2] + 0x2c" (subscript_expression "local_90[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }" { (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (if_statement "if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }" if (parenthesized_expression "(*(int *)(*ppuVar19 + 8) == 0)" ( (binary_expression "*(int *)(*ppuVar19 + 8) == 0" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501dc;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501dc" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }" if (parenthesized_expression "(*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*ppuVar19 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*ppuVar19 + 8) + 0x1a25" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }" { (labeled_statement "LAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" statement_identifier : (if_statement "if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" if (parenthesized_expression "((uVar18 & 8) != 0)" ( (binary_expression "(uVar18 & 8) != 0" (parenthesized_expression "(uVar18 & 8)" ( (binary_expression "uVar18 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" { (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }" { (if_statement "if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }" if (parenthesized_expression "((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }" { (labeled_statement "LAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" statement_identifier : (if_statement "if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" if (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0))" ( (binary_expression "(*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) && (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" { (if_statement "if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }" if (parenthesized_expression "(*(int *)(*ppuVar19 + 8) == 0)" ( (binary_expression "*(int *)(*ppuVar19 + 8) == 0" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }" { (expression_statement "*(undefined ***)(puVar21 + -4) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar21 + -4) = ppuVar19" (pointer_expression "*(undefined ***)(puVar21 + -4)" * (cast_expression "(undefined ***)(puVar21 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_0005044d" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;" if (parenthesized_expression "(*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')" ( (binary_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*ppuVar19 + 8) + 0x49b1)" ( (binary_expression "*(int *)(*ppuVar19 + 8) + 0x49b1" (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0004eb80;" goto statement_identifier ;) })) }) (else_clause "else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" else (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ebf4;" goto statement_identifier ;)))) }))) (goto_statement "goto LAB_0004e466;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }" { (if_statement "if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }" if (parenthesized_expression "((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0))" ( (binary_expression "(local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)" (parenthesized_expression "(local_90[3] != 0)" ( (binary_expression "local_90[3] != 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }" { (labeled_statement "LAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;" statement_identifier : (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e449;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e449" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055b70();" (assignment_expression "cVar7 = FUN_00055b70()" identifier = (call_expression "FUN_00055b70()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 == '\0') goto LAB_0004e454;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e454;" goto statement_identifier ;)) })) }) (else_clause "else if (bVar8 != 4) goto LAB_0004e432;" else (if_statement "if (bVar8 != 4) goto LAB_0004e432;" if (parenthesized_expression "(bVar8 != 4)" ( (binary_expression "bVar8 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004e432;" goto statement_identifier ;)))) })) })) (labeled_statement "LAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" statement_identifier : (if_statement "if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) == 0)" ( (binary_expression "*(int *)(param_1 + 0x18) == 0" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" { (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x50198;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x50198" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000494c0();" (call_expression "FUN_000494c0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00050198:\n                    ppuVar19 = local_94;" statement_identifier : (expression_statement "ppuVar19 = local_94;" (assignment_expression "ppuVar19 = local_94" identifier = identifier) ;)) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c715" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x70d;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x70d" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)ppuVar19 + -0xf3c7b" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501b9;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501b9" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x4eba2;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x4eba2" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "local_40 = FUN_0004bfa0();" (assignment_expression "local_40 = FUN_0004bfa0()" identifier = (call_expression "FUN_0004bfa0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) }))) (labeled_statement "LAB_0004e466:\n                local_a0 = &local_4c;" statement_identifier : (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;)) (if_statement "if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }" if (parenthesized_expression "(local_b0 < 0xfc)" ( (binary_expression "local_b0 < 0xfc" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }" { (expression_statement "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))" ( (pointer_expression "*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" * (cast_expression "(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[local_b0 - 0x3cc95] + (int)local_94)" ( (binary_expression "local_94[local_b0 - 0x3cc95] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cc95]" identifier [ (binary_expression "local_b0 - 0x3cc95" identifier - number_literal) ]) + (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0004e736;" goto statement_identifier ;) })) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea09;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea09" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055ca0();" (assignment_expression "cVar7 = FUN_00055ca0()" identifier = (call_expression "FUN_00055ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_90;" (assignment_expression "puVar4 = local_90" identifier = identifier) ;) (if_statement "if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }" { (labeled_statement "LAB_0004f070:\n                uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));" statement_identifier : (expression_statement "uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));" (assignment_expression "uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040))" identifier = (binary_expression "(uint)*(char *)((int)local_94 + (uVar10 - 0xf2040))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)((int)local_94 + (uVar10 - 0xf2040))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + (uVar10 - 0xf2040))" ( (binary_expression "(int)local_94 + (uVar10 - 0xf2040)" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar10 - 0xf2040)" ( (binary_expression "uVar10 - 0xf2040" identifier - number_literal) ))) ))))) ;)) (goto_statement "goto LAB_0004e381;" goto statement_identifier ;) })) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea2e" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055ed0();" (assignment_expression "cVar7 = FUN_00055ed0()" identifier = (call_expression "FUN_00055ed0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 == '\0') goto LAB_0004f070;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }" if (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)puVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)puVar4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar4 + 0x2a)" * (cast_expression "(byte *)((int)puVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2a)" ( (binary_expression "(int)puVar4 + 0x2a" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }" { (if_statement "if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;" if (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2a) & 7) != 4)" ( (binary_expression "(*(byte *)((int)puVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)puVar4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar4 + 0x2a)" * (cast_expression "(byte *)((int)puVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2a)" ( (binary_expression "(int)puVar4 + 0x2a" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ea6a;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;) })) (if_statement "if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;" if (parenthesized_expression "(((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(puVar4[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar4[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar4[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(puVar4[2] + 0x2c) & 1" (pointer_expression "*(byte *)(puVar4[2] + 0x2c)" * (cast_expression "(byte *)(puVar4[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[2] + 0x2c)" ( (binary_expression "puVar4[2] + 0x2c" (subscript_expression "puVar4[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)))" ( (parenthesized_expression "(puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))" ( (binary_expression "puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)" (binary_expression "puVar4[3] == 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)puVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)puVar4 + 0x2b)" * (cast_expression "(byte *)((int)puVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2b)" ( (binary_expression "(int)puVar4 + 0x2b" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (labeled_statement "LAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;" statement_identifier : (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" * (cast_expression "(undefined4 **)(puVar21 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea81;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea81" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_00055b70();" (assignment_expression "cVar7 = FUN_00055b70()" identifier = (call_expression "FUN_00055b70()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') goto LAB_0004f070;" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004f070;" goto statement_identifier ;)) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = param_6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = param_6" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4eab3;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4eab3" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_0004c1a0();" (assignment_expression "cVar7 = FUN_0004c1a0()" identifier = (call_expression "FUN_0004c1a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_a4;" (assignment_expression "puVar4 = local_a4" identifier = identifier) ;) (if_statement "if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }" { (expression_statement "*(undefined4 *)(puVar21 + -8) = *local_a4;" (assignment_expression "*(undefined4 *)(puVar21 + -8) = *local_a4" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (pointer_expression "*local_a4" * identifier)) ;) (expression_statement "*(int **)(puVar21 + -0xc) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_bc" (pointer_expression "*(int **)(puVar21 + -0xc)" * (cast_expression "(int **)(puVar21 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_9c;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_9c" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4eada;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4eada" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_00056220();" (assignment_expression "uVar11 = FUN_00056220()" identifier = (call_expression "FUN_00056220()" identifier (argument_list "()" ( )))) ;) (expression_statement "*puVar4 = uVar11;" (assignment_expression "*puVar4 = uVar11" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) }))) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e4c6" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }" if (parenthesized_expression "(local_90 != (undefined4 *)0x0)" ( (binary_expression "local_90 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }" { (expression_statement "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);" (assignment_expression "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a)" identifier = (binary_expression "(uint)*(byte *)((int)local_90 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" { (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" if (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }" { (labeled_statement "LAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" statement_identifier : (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) ))))) ;)) (if_statement "if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }" if (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     )" ( (binary_expression "(*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) && (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }" { (expression_statement "iVar15 = *(int *)(local_94[0xbc] + 8);" (assignment_expression "iVar15 = *(int *)(local_94[0xbc] + 8)" identifier = (pointer_expression "*(int *)(local_94[0xbc] + 8)" * (cast_expression "(int *)(local_94[0xbc] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94[0xbc] + 8)" ( (binary_expression "local_94[0xbc] + 8" (subscript_expression "local_94[0xbc]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }" { (expression_statement "*(uint *)(puVar21 + -4) = uVar18;" (assignment_expression "*(uint *)(puVar21 + -4) = uVar18" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x5029b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x5029b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }" if (parenthesized_expression "(*(char *)(iVar15 + 0x49b1) == '\0')" ( (binary_expression "*(char *)(iVar15 + 0x49b1) == '\0'" (pointer_expression "*(char *)(iVar15 + 0x49b1)" * (cast_expression "(char *)(iVar15 + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x49b1)" ( (binary_expression "iVar15 + 0x49b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }" { (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;) (if_statement "if (-1 < (char)bVar8) goto LAB_0004ed70;" if (parenthesized_expression "(-1 < (char)bVar8)" ( (binary_expression "-1 < (char)bVar8" number_literal < (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0004ed70;" goto statement_identifier ;)) (if_statement "if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }" if (parenthesized_expression "((char)uVar10 == '\0')" ( (binary_expression "(char)uVar10 == '\0'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }" { (expression_statement "ppuVar19 = local_94 + -0xba878;" (assignment_expression "ppuVar19 = local_94 + -0xba878" identifier = (binary_expression "local_94 + -0xba878" identifier + number_literal)) ;) (goto_statement "goto LAB_0004ed40;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);" statement_identifier : (expression_statement "bVar1 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar1 = *(byte *)((int)local_90 + 0x29)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1)" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar1)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,bVar1)" identifier (argument_list "(local_9c._1_3_,bVar1)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar9 = bVar1 & 3;" (assignment_expression "bVar9 = bVar1 & 3" identifier = (binary_expression "bVar1 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }" if (parenthesized_expression "((bVar1 & 3) != 0)" ( (binary_expression "(bVar1 & 3) != 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }" { (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) (goto_statement "goto LAB_0004eee0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" statement_identifier : (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;)) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (labeled_statement "LAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;" statement_identifier : (if_statement "if (bVar9 == 0) goto LAB_0004efaf;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;))) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" identifier (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "uVar10 = (uint)bVar8;" (assignment_expression "uVar10 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar8 != 0) goto LAB_0004eee0;" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004eee0;" goto statement_identifier ;)) }) (else_clause "else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" else (compound_statement "{\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" { (expression_statement "ppuVar19 = local_94 + -0xba878;" (assignment_expression "ppuVar19 = local_94 + -0xba878" identifier = (binary_expression "local_94 + -0xba878" identifier + number_literal)) ;) (expression_statement "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14)" identifier = (pointer_expression "*(undefined ***)(*(int *)local_90[2] + 0x14)" * (cast_expression "(undefined ***)(*(int *)local_90[2] + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*(int *)local_90[2] + 0x14)" ( (binary_expression "*(int *)local_90[2] + 0x14" (pointer_expression "*(int *)local_90[2]" * (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }" if (parenthesized_expression "(ppuVar3 != ppuVar19)" ( (binary_expression "ppuVar3 != ppuVar19" identifier != identifier) )) (compound_statement "{\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }" { (expression_statement "*(int **)(puVar21 + -0x10) = (int *)local_90[2];" (assignment_expression "*(int **)(puVar21 + -0x10) = (int *)local_90[2]" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f896;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f896" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = (*(code *)ppuVar3)();" (assignment_expression "iVar15 = (*(code *)ppuVar3)()" identifier = (call_expression "(*(code *)ppuVar3)()" (parenthesized_expression "(*(code *)ppuVar3)" ( (pointer_expression "*(code *)ppuVar3" * (cast_expression "(code *)ppuVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) goto LAB_0004ef40;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004ef40;" goto statement_identifier ;)) (expression_statement "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);" (assignment_expression "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a)" identifier = (binary_expression "(uint)*(byte *)((int)local_90 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }" if (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" * (cast_expression "(byte *)((int)local_90 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }" { (if_statement "if ((char)uVar10 == '\x04') goto LAB_0004ecc9;" if (parenthesized_expression "((char)uVar10 == '\x04')" ( (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (-1 < (char)bVar8) goto LAB_0004f8c5;" if (parenthesized_expression "(-1 < (char)bVar8)" ( (binary_expression "-1 < (char)bVar8" number_literal < (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0004f8c5;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f8f7;" goto statement_identifier ;) })) (if_statement "if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" if (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }" { (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;" if (parenthesized_expression "((bVar8 & 0x20) != 0)" ( (binary_expression "(bVar8 & 0x20) != 0" (parenthesized_expression "(bVar8 & 0x20)" ( (binary_expression "bVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) }) (else_clause "else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" else (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" { (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" if (parenthesized_expression "((char)bVar8 < '\0')" ( (binary_expression "(char)bVar8 < '\0'" (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }" { (labeled_statement "LAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" statement_identifier : (expression_statement "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14)" identifier = (pointer_expression "*(undefined ***)(*(int *)local_90[2] + 0x14)" * (cast_expression "(undefined ***)(*(int *)local_90[2] + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*(int *)local_90[2] + 0x14)" ( (binary_expression "*(int *)local_90[2] + 0x14" (pointer_expression "*(int *)local_90[2]" * (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) + number_literal) ))))) ;)) (if_statement "if (ppuVar3 == ppuVar19) goto LAB_0004e51b;" if (parenthesized_expression "(ppuVar3 == ppuVar19)" ( (binary_expression "ppuVar3 == ppuVar19" identifier == identifier) )) (goto_statement "goto LAB_0004e51b;" goto statement_identifier ;)) (expression_statement "*(int **)(puVar21 + -0x10) = (int *)local_90[2];" (assignment_expression "*(int **)(puVar21 + -0x10) = (int *)local_90[2]" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (cast_expression "(int *)local_90[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_90[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ed5c" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = (*(code *)ppuVar3)();" (assignment_expression "iVar15 = (*(code *)ppuVar3)()" identifier = (call_expression "(*(code *)ppuVar3)()" (parenthesized_expression "(*(code *)ppuVar3)" ( (pointer_expression "*(code *)ppuVar3" * (cast_expression "(code *)ppuVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "ppuVar19 = local_e4;" (assignment_expression "ppuVar19 = local_e4" identifier = identifier) ;) (if_statement "if (iVar15 != 0) goto LAB_0004ed70;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ed70;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" else (compound_statement "{\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" { (labeled_statement "LAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;" statement_identifier : (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" identifier = (binary_expression "local_94 + 0xbc" identifier + number_literal)) ;)) (labeled_statement "LAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);" statement_identifier : (expression_statement "piVar5 = *(int **)(*ppuVar19 + 0xc);" (assignment_expression "piVar5 = *(int **)(*ppuVar19 + 0xc)" identifier = (pointer_expression "*(int **)(*ppuVar19 + 0xc)" * (cast_expression "(int **)(*ppuVar19 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*ppuVar19 + 0xc)" ( (binary_expression "*ppuVar19 + 0xc" (pointer_expression "*ppuVar19" * identifier) + number_literal) ))))) ;)) (if_statement "if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c759" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c759" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x69;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x69" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501fa;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501fa" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar15 = *piVar5;" (assignment_expression "iVar15 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" * (cast_expression "(undefined4 **)(puVar21 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x10) = piVar5;" (assignment_expression "*(int **)(puVar21 + -0x10) = piVar5" (pointer_expression "*(int **)(puVar21 + -0x10)" * (cast_expression "(int **)(puVar21 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar15 + 0x1c);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0x1c)" identifier = (pointer_expression "*(code **)(iVar15 + 0x1c)" * (cast_expression "(code **)(iVar15 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ed8c" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar2)();" (assignment_expression "cVar7 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_90;" (assignment_expression "puVar4 = local_90" identifier = identifier) ;) (if_statement "if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }" { (expression_statement "iVar15 = *(int *)(*ppuVar19 + 8);" (assignment_expression "iVar15 = *(int *)(*ppuVar19 + 8)" identifier = (pointer_expression "*(int *)(*ppuVar19 + 8)" * (cast_expression "(int *)(*ppuVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppuVar19 + 8)" ( (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }" { (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_00050218" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_00050218" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pbVar17 = *(byte **)(iVar15 + 0x42e4);" (assignment_expression "pbVar17 = *(byte **)(iVar15 + 0x42e4)" identifier = (pointer_expression "*(byte **)(iVar15 + 0x42e4)" * (cast_expression "(byte **)(iVar15 + 0x42e4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x42e4)" ( (binary_expression "iVar15 + 0x42e4" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar25 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }" { (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (labeled_statement "LAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" statement_identifier : (if_statement "if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" if (parenthesized_expression "((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0'))))" ( (binary_expression "(bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))" (parenthesized_expression "(bVar9 == 2)" ( (binary_expression "bVar9 == 2" identifier == number_literal) )) || (parenthesized_expression "((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))" ( (parenthesized_expression "(*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0'))" ( (binary_expression "*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')" (binary_expression "*(char *)(iVar15 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar15 + 0x1a25)" * (cast_expression "(char *)(iVar15 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1a25)" ( (binary_expression "iVar15 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(char *)(iVar15 + 0x4eb5) != '\0')" ( (binary_expression "*(char *)(iVar15 + 0x4eb5) != '\0'" (pointer_expression "*(char *)(iVar15 + 0x4eb5)" * (cast_expression "(char *)(iVar15 + 0x4eb5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x4eb5)" ( (binary_expression "iVar15 + 0x4eb5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" { (labeled_statement "LAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;" statement_identifier : (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;)) (expression_statement "*(uint *)(puVar21 + -0x14) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x14) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x14)" * (cast_expression "(uint *)(puVar21 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x18) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x18) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x18)" * (cast_expression "(int *)(puVar21 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x1c) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x1c) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x1c)" * (cast_expression "(undefined4 **)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4ee8e" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000833b0();" (call_expression "FUN_000833b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar8 = *(byte *)((int)puVar4 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)puVar4 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)puVar4 + 0x2b)" * (cast_expression "(byte *)((int)puVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 0x2b)" ( (binary_expression "(int)puVar4 + 0x2b" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) }))) }) (else_clause "else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" else (compound_statement "{\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" { (expression_statement "iVar16 = 0xb;" (assignment_expression "iVar16 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)((int)local_94 + -0xf8fa6);" (assignment_expression "pbVar22 = (byte *)((int)local_94 + -0xf8fa6)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8fa6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8fa6)" ( (binary_expression "(int)local_94 + -0xf8fa6" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);" do (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar14 < *pbVar22;" (assignment_expression "bVar23 = *pbVar14 < *pbVar22" identifier = (binary_expression "*pbVar14 < *pbVar22" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar25 = *pbVar14 == *pbVar22;" (assignment_expression "bVar25 = *pbVar14 == *pbVar22" identifier = (binary_expression "*pbVar14 == *pbVar22" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) goto LAB_0004eea0;" if (parenthesized_expression "(bVar23)" ( identifier )) (goto_statement "goto LAB_0004eea0;" goto statement_identifier ;)) (expression_statement "iVar16 = 0xb;" (assignment_expression "iVar16 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)((int)local_94 + -0xf8f9b);" (assignment_expression "pbVar22 = (byte *)((int)local_94 + -0xf8f9b)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8f9b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8f9b)" ( (binary_expression "(int)local_94 + -0xf8f9b" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);" do (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar14 < *pbVar22;" (assignment_expression "bVar24 = *pbVar14 < *pbVar22" identifier = (binary_expression "*pbVar14 < *pbVar22" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar23 = *pbVar14 == *pbVar22;" (assignment_expression "bVar23 = *pbVar14 == *pbVar22" identifier = (binary_expression "*pbVar14 == *pbVar22" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) goto LAB_0004ee67;" if (parenthesized_expression "(bVar23)" ( identifier )) (goto_statement "goto LAB_0004ee67;" goto statement_identifier ;)) (expression_statement "iVar16 = 0x17;" (assignment_expression "iVar16 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "ppuVar19 = local_94 + -0x3e3e4;" (assignment_expression "ppuVar19 = local_94 + -0x3e3e4" identifier = (binary_expression "local_94 + -0x3e3e4" identifier + number_literal)) ;) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);" do (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar14 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar14 < *(byte *)ppuVar19" identifier = (binary_expression "*pbVar14 < *(byte *)ppuVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar23 = *pbVar14 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar14 == *(byte *)ppuVar19" identifier = (binary_expression "*pbVar14 == *(byte *)ppuVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }" if (parenthesized_expression "((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23))" ( (binary_expression "(!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)" (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) || (parenthesized_expression "(bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)" ( (comma_expression "bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23" (assignment_expression "bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0" identifier = (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 1) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 1)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 1" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal)) , (unary_expression "!bVar23" ! identifier)) ))) )) (compound_statement "{\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }" { (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "iVar16 = 0x16;" (assignment_expression "iVar16 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf8f79);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf8f79)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf8f79)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf8f79)" ( (binary_expression "(int)local_94 + -0xf8f79" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);" do (compound_statement "{\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;" if (parenthesized_expression "(((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0'))" ( (binary_expression "((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')" (parenthesized_expression "((!bVar25 && !bVar23) != bVar25)" ( (binary_expression "(!bVar25 && !bVar23) != bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) || (parenthesized_expression "(*(char *)((int)local_90 + 0x2a) < '\0')" ( (binary_expression "*(char *)((int)local_90 + 0x2a) < '\0'" (pointer_expression "*(char *)((int)local_90 + 0x2a)" * (cast_expression "(char *)((int)local_90 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2a)" ( (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0004ee51;" goto statement_identifier ;)) })) }))) (goto_statement "goto LAB_0004eeb3;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" statement_identifier : (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" identifier (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;)) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" identifier = (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (goto_statement "goto LAB_0004eeb3;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);" statement_identifier : (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x29)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8)" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,bVar8)" identifier (argument_list "(local_9c._1_3_,bVar8)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar9 = bVar8 & 3;" (assignment_expression "bVar9 = bVar8 & 3" identifier = (binary_expression "bVar8 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar8 & 3) == 0) goto LAB_0004e534;" if (parenthesized_expression "((bVar8 & 3) == 0)" ( (binary_expression "(bVar8 & 3) == 0" (parenthesized_expression "(bVar8 & 3)" ( (binary_expression "bVar8 & 3" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e534;" goto statement_identifier ;)) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" identifier = (binary_expression "uVar18 & 7" identifier & number_literal)) ;) }))) (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }" if (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" ( (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" ( (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }" { (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) ))))) ;) (if_statement "if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;" if (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     )" ( (binary_expression "(*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 == 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 == 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) == number_literal) )) || (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) != 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0004ec9c;" goto statement_identifier ;)) (labeled_statement "LAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" statement_identifier : (if_statement "if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" if (parenthesized_expression "(*(int *)(*local_e0 + 8) == 0)" ( (binary_expression "*(int *)(*local_e0 + 8) == 0" (pointer_expression "*(int *)(*local_e0 + 8)" * (cast_expression "(int *)(*local_e0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_e0 + 8)" ( (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" { (expression_statement "*(undefined ***)(puVar21 + -4) = local_e0;" (assignment_expression "*(undefined ***)(puVar21 + -4) = local_e0" (pointer_expression "*(undefined ***)(puVar21 + -4)" * (cast_expression "(undefined ***)(puVar21 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c69e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_000500bd;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_000500bd" (pointer_expression "*(undefined **)(puVar21 + -0x14)" * (cast_expression "(undefined **)(puVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000500bd" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }" if (parenthesized_expression "(*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_e0 + 8) + 0x49b1)" ( (binary_expression "*(int *)(*local_e0 + 8) + 0x49b1" (pointer_expression "*(int *)(*local_e0 + 8)" * (cast_expression "(int *)(*local_e0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_e0 + 8)" ( (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }" { (if_statement "if ((char)uVar10 != '\0') goto LAB_0004efaf;" if (parenthesized_expression "((char)uVar10 != '\0')" ( (binary_expression "(char)uVar10 != '\0'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ec9c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" statement_identifier : (if_statement "if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" if (parenthesized_expression "(bVar9 == 2)" ( (binary_expression "bVar9 == 2" identifier == number_literal) )) (compound_statement "{\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }" { (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a5d" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4fcf5" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" else (if_statement "if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" if (parenthesized_expression "(bVar9 < 3)" ( (binary_expression "bVar9 < 3" identifier < number_literal) )) (compound_statement "{\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }" { (if_statement "if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }" if (parenthesized_expression "(bVar9 != 1)" ( (binary_expression "bVar9 != 1" identifier != number_literal) )) (compound_statement "{\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }" { (expression_statement "*(uint *)(puVar21 + -4) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -4) = uVar10" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e" (pointer_expression "*(undefined ***)(puVar21 + -8)" * (cast_expression "(undefined ***)(puVar21 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3c75e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0xa4;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0xa4" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_0005025b" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a66" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4efdd;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4efdd" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" else (compound_statement "{\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" { (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56" (pointer_expression "*(int *)(puVar21 + -0x10)" * (cast_expression "(int *)(puVar21 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_94 + -0xf3a56" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ef77;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ef77" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) })))))) (expression_statement "uVar13 = *local_90;" (assignment_expression "uVar13 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cd73" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ef9b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -8) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -8) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4efac;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4efac" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000828d0();" (call_expression "FUN_000828d0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0004efaf;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;" statement_identifier : (if_statement "if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;" if (parenthesized_expression "((*(byte *)(local_90[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(local_90[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(local_90[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(local_90[2] + 0x2c) & 1" (pointer_expression "*(byte *)(local_90[2] + 0x2c)" * (cast_expression "(byte *)(local_90[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90[2] + 0x2c)" ( (binary_expression "local_90[2] + 0x2c" (subscript_expression "local_90[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0004ef58;" goto statement_identifier ;))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" else (compound_statement "{\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" { (if_statement "if ((char)uVar10 == '\x04') goto LAB_0004ecc9;" if (parenthesized_expression "((char)uVar10 == '\x04')" ( (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ecc9;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x29)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x29)" * (cast_expression "(byte *)((int)local_90 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x29)" ( (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8)" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,bVar8)" identifier (argument_list "(local_9c._1_3_,bVar8)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar9 = bVar8 & 3;" (assignment_expression "bVar9 = bVar8 & 3" identifier = (binary_expression "bVar8 & 3" identifier & number_literal)) ;) (if_statement "if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }" if (parenthesized_expression "((bVar8 & 3) == 0)" ( (binary_expression "(bVar8 & 3) == 0" (parenthesized_expression "(bVar8 & 3)" ( (binary_expression "bVar8 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }" { (labeled_statement "LAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);" statement_identifier : (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) (labeled_statement "LAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" statement_identifier : (if_statement "if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" if (parenthesized_expression "((char)uVar10 == '\x04')" ( (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" { (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier = (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" identifier (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) ))))) ;) (if_statement "if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }" if (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" * (cast_expression "(byte *)(local_90 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 10)" ( (binary_expression "local_90 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) (compound_statement "{\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }" { (if_statement "if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;" if (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" ( (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" * (cast_expression "(byte *)(local_90 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0xb)" ( (binary_expression "local_90 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ef17;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0004e538;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);" statement_identifier : (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" identifier = (pointer_expression "*(byte *)((int)local_90 + 0x2b)" * (cast_expression "(byte *)((int)local_90 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 0x2b)" ( (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) }))) (labeled_statement "LAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" statement_identifier : (if_statement "if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" if (parenthesized_expression "((bVar8 & 4) != 0)" ( (binary_expression "(bVar8 & 4) != 0" (parenthesized_expression "(bVar8 & 4)" ( (binary_expression "bVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" { (expression_statement "*(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0xc)" * (cast_expression "(int *)(puVar21 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(uint *)(puVar21 + -0x10) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x10) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x10)" * (cast_expression "(uint *)(puVar21 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x14) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x14) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x14)" * (cast_expression "(int *)(puVar21 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = (undefined4 *)*param_2;" (assignment_expression "puVar4 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x18) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x18) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x18)" * (cast_expression "(undefined4 **)(puVar21 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x1c) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x1c) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x1c)" * (cast_expression "(undefined4 **)(puVar21 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = (binary_expression "puVar4 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4ec77;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4ec77" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_90 = puVar4;" (assignment_expression "local_90 = puVar4" identifier = identifier) ;) (expression_statement "FUN_001524d0();" (call_expression "FUN_001524d0()" identifier (argument_list "()" ( ))) ;) }))) })) }) (else_clause "else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" else (compound_statement "{\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" { (labeled_statement "LAB_0004f130:\n            local_78 = param_4;" statement_identifier : (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;)) (if_statement "if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }" if (parenthesized_expression "(((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b))" ( (binary_expression "((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)" (parenthesized_expression "((local_b0 - 2 & 0xfffffffd) != 0)" ( (binary_expression "(local_b0 - 2 & 0xfffffffd) != 0" (parenthesized_expression "(local_b0 - 2 & 0xfffffffd)" ( (binary_expression "local_b0 - 2 & 0xfffffffd" (binary_expression "local_b0 - 2" identifier - number_literal) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_b0 != 0x2b)" ( (binary_expression "local_b0 != 0x2b" identifier != number_literal) ))) )) (compound_statement "{\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }" { (labeled_statement "LAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" statement_identifier : (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdbe" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f182;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f182" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *local_78;" (assignment_expression "uVar10 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar21 + -0x18) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -0x18) = uVar10" (pointer_expression "*(uint *)(puVar21 + -0x18)" * (cast_expression "(uint *)(puVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4f19c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4f19c" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" * (cast_expression "(undefined4 *)(puVar21 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0004e30b;" goto statement_identifier ;) })) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = local_90 == (undefined4 *)0x0;" (assignment_expression "bVar25 = local_90 == (undefined4 *)0x0" identifier = (binary_expression "local_90 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) goto LAB_0004f16b;" if (parenthesized_expression "(bVar25)" ( identifier )) (goto_statement "goto LAB_0004f16b;" goto statement_identifier ;)) (expression_statement "iVar15 = 0x10;" (assignment_expression "iVar15 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)*local_90;" (assignment_expression "pbVar17 = (byte *)*local_90" identifier = (cast_expression "(byte *)*local_90" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_90" * identifier))) ;) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3c55);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3c55)" identifier = (cast_expression "(byte *)((int)local_94 + -0xf3c55)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + -0xf3c55)" ( (binary_expression "(int)local_94 + -0xf3c55" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar14;" (assignment_expression "bVar23 = *pbVar17 < *pbVar14" identifier = (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar14;" (assignment_expression "bVar25 = *pbVar17 == *pbVar14" identifier = (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;" if (parenthesized_expression "((!bVar23 && !bVar25) != bVar23)" ( (binary_expression "(!bVar23 && !bVar25) != bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_0004f16b;" goto statement_identifier ;)) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) }))) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_c4;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_c4" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e54f;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e54f" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_ac;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_ac" (pointer_expression "*(byte ***)(puVar21 + -0x10)" * (cast_expression "(byte ***)(puVar21 + -0x10)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e55b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e55b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" else (compound_statement "{\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" { (expression_statement "*(uint *)(puVar21 + -4) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -4) = local_b8" (pointer_expression "*(uint *)(puVar21 + -4)" * (cast_expression "(uint *)(puVar21 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -8) = param_2[6];" (assignment_expression "*(undefined4 *)(puVar21 + -8) = param_2[6]" (pointer_expression "*(undefined4 *)(puVar21 + -8)" * (cast_expression "(undefined4 *)(puVar21 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = param_2[2];" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = param_2[2]" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = param_6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = param_6" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f6e0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_b8 = FUN_000efd20();" (assignment_expression "local_b8 = FUN_000efd20()" identifier = (call_expression "FUN_000efd20()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_b8 != 0xffffffff) goto LAB_0004e1d8;" if (parenthesized_expression "(local_b8 != 0xffffffff)" ( (binary_expression "local_b8 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_0004e1d8;" goto statement_identifier ;)) }))) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar21;" (assignment_expression "puVar6 = puVar21" identifier = identifier) ;) }) while (parenthesized_expression "(param_5 != local_a8)" ( (binary_expression "param_5 != local_a8" identifier != identifier) )) ;) })) (if_statement "if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }" if (parenthesized_expression "(local_74 != '\0')" ( (binary_expression "local_74 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }" { (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" * (cast_expression "(undefined ***)(puVar21 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = (binary_expression "local_94 + -0x3cdbe" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ff97;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ff97" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" * (cast_expression "(undefined4 *)(puVar21 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ff9f" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" * (cast_expression "(undefined4 *)(puVar21 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000828d0();" (call_expression "FUN_000828d0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_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 (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) })) })) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_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 (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (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 (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)))) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) ))))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (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 *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (labeled_statement statement_identifier : (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 *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT)) , (unary_expression ! IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) < (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) })) }))) (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 *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })))))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )\n\n{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0004e110(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )" (identifier "FUN_0004e110") (parameter_list "(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,\n                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11\n                 )" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "char param_7" (primitive_type "char") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) (, ",") (parameter_declaration "uint param_10" (type_identifier "uint") (identifier "param_10")) (, ",") (parameter_declaration "int *param_11" (primitive_type "int") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  undefined **ppuVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  byte *pbVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined **ppuVar19;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined1 auStack_ec [8];\n  undefined **local_e4;\n  undefined **local_e0;\n  undefined4 *local_dc;\n  char local_d1;\n  int local_c8;\n  byte **local_c4;\n  int *local_c0;\n  int *local_bc;\n  uint local_b8;\n  int local_b4;\n  uint local_b0;\n  byte **local_ac;\n  int local_a8;\n  undefined4 *local_a4;\n  byte **local_a0;\n  byte **local_9c;\n  int local_98;\n  undefined **local_94;\n  undefined4 *local_90;\n  undefined1 local_82 [2];\n  undefined1 local_80 [4];\n  int local_7c;\n  uint *local_78;\n  char local_74;\n  undefined4 local_70;\n  byte *local_6c;\n  undefined4 local_68;\n  uint local_64;\n  undefined4 local_60;\n  byte *local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  byte *local_50;\n  byte *local_4c;\n  undefined4 local_48;\n  byte local_44 [4];\n  int local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  bVar26 = 0;\n  local_94 = &__DT_PLTGOT;\n  local_d1 = param_7;\n  if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }\n  local_74 = '\0';\n  local_70 = 0;\n  local_c0 = (int *)param_2[2];\n  pcVar2 = *(code **)(*local_c0 + 0x8c);\n  if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }\n  puVar21 = auStack_ec;\n  local_b4 = 0;\n  local_a8 = 0;\n  local_e4 = local_94 + 0xbc;\n  puVar6 = auStack_ec;\n  local_e0 = local_e4;\n  if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }\n  if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined **ppuVar3;" (type_identifier "undefined") (pointer_declarator "**ppuVar3" (* "*") (pointer_declarator "*ppuVar3" (* "*") (identifier "ppuVar3"))) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined **ppuVar19;" (type_identifier "undefined") (pointer_declarator "**ppuVar19" (* "*") (pointer_declarator "*ppuVar19" (* "*") (identifier "ppuVar19"))) (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "byte bVar26;" (type_identifier "byte") (identifier "bVar26") (; ";")) (declaration "undefined1 auStack_ec [8];" (type_identifier "undefined1") (array_declarator "auStack_ec [8]" (identifier "auStack_ec") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined **local_e4;" (type_identifier "undefined") (pointer_declarator "**local_e4" (* "*") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4"))) (; ";")) (declaration "undefined **local_e0;" (type_identifier "undefined") (pointer_declarator "**local_e0" (* "*") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0"))) (; ";")) (declaration "undefined4 *local_dc;" (type_identifier "undefined4") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")) (; ";")) (declaration "char local_d1;" (primitive_type "char") (identifier "local_d1") (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "byte **local_c4;" (type_identifier "byte") (pointer_declarator "**local_c4" (* "*") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4"))) (; ";")) (declaration "int *local_c0;" (primitive_type "int") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "int *local_bc;" (primitive_type "int") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")) (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "int local_b4;" (primitive_type "int") (identifier "local_b4") (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "byte **local_ac;" (type_identifier "byte") (pointer_declarator "**local_ac" (* "*") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac"))) (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "undefined4 *local_a4;" (type_identifier "undefined4") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "byte **local_a0;" (type_identifier "byte") (pointer_declarator "**local_a0" (* "*") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0"))) (; ";")) (declaration "byte **local_9c;" (type_identifier "byte") (pointer_declarator "**local_9c" (* "*") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c"))) (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "undefined **local_94;" (type_identifier "undefined") (pointer_declarator "**local_94" (* "*") (pointer_declarator "*local_94" (* "*") (identifier "local_94"))) (; ";")) (declaration "undefined4 *local_90;" (type_identifier "undefined4") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined1 local_82 [2];" (type_identifier "undefined1") (array_declarator "local_82 [2]" (identifier "local_82") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_80 [4];" (type_identifier "undefined1") (array_declarator "local_80 [4]" (identifier "local_80") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "uint *local_78;" (type_identifier "uint") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "char local_74;" (primitive_type "char") (identifier "local_74") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "byte *local_6c;" (type_identifier "byte") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined4 local_68;" (type_identifier "undefined4") (identifier "local_68") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "byte *local_5c;" (type_identifier "byte") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "byte *local_50;" (type_identifier "byte") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "byte *local_4c;" (type_identifier "byte") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "byte local_44 [4];" (type_identifier "byte") (array_declarator "local_44 [4]" (identifier "local_44") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined1 *local_34 [2];" (type_identifier "undefined1") (pointer_declarator "*local_34 [2]" (* "*") (array_declarator "local_34 [2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" (identifier "bVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = &__DT_PLTGOT;" (assignment_expression "local_94 = &__DT_PLTGOT" (identifier "local_94") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_d1 = param_7;" (assignment_expression "local_d1 = param_7" (identifier "local_d1") (= "=") (identifier "param_7")) (; ";")) (if_statement "if (param_3 != 9) {\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }" (if "if") (parenthesized_expression "(param_3 != 9)" (( "(") (binary_expression "param_3 != 9" (identifier "param_3") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");\n  }" ({ "{") (expression_statement "FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");" (call_expression "FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section")" (identifier "FUN_0008b620") (argument_list "("../../gold/i386.cc",0xe64,"relocate_section")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xe64") (, ",") (string_literal ""relocate_section"" (" """) (string_content "relocate_section") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" (identifier "local_74") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = (int *)param_2[2];" (assignment_expression "local_c0 = (int *)param_2[2]" (identifier "local_c0") (= "=") (cast_expression "(int *)param_2[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcVar2 = *(code **)(*local_c0 + 0x8c);" (assignment_expression "pcVar2 = *(code **)(*local_c0 + 0x8c)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(*local_c0 + 0x8c)" (* "*") (cast_expression "(code **)(*local_c0 + 0x8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_c0 + 0x8c)" (( "(") (binary_expression "*local_c0 + 0x8c" (pointer_expression "*local_c0" (* "*") (identifier "local_c0")) (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (if_statement "if (pcVar2 == FUN_00054e30) {\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }\n  else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" (if "if") (parenthesized_expression "(pcVar2 == FUN_00054e30)" (( "(") (binary_expression "pcVar2 == FUN_00054e30" (identifier "pcVar2") (== "==") (identifier "FUN_00054e30")) () ")")) (compound_statement "{\n                    \n    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);\n  }" ({ "{") (expression_statement "local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);" (assignment_expression "local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0)" (identifier "local_dc") (= "=") (cast_expression "(undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*local_c0 + 0xbc))(local_c0)" (parenthesized_expression "(**(code **)(*local_c0 + 0xbc))" (( "(") (pointer_expression "**(code **)(*local_c0 + 0xbc)" (* "*") (pointer_expression "*(code **)(*local_c0 + 0xbc)" (* "*") (cast_expression "(code **)(*local_c0 + 0xbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_c0 + 0xbc)" (( "(") (binary_expression "*local_c0 + 0xbc" (pointer_expression "*local_c0" (* "*") (identifier "local_c0")) (+ "+") (number_literal "0xbc")) () ")"))))) () ")")) (argument_list "(local_c0)" (( "(") (identifier "local_c0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" (else "else") (compound_statement "{\n                    \n    local_dc = (undefined4 *)(*pcVar2)(local_c0);\n  }" ({ "{") (expression_statement "local_dc = (undefined4 *)(*pcVar2)(local_c0);" (assignment_expression "local_dc = (undefined4 *)(*pcVar2)(local_c0)" (identifier "local_dc") (= "=") (cast_expression "(undefined4 *)(*pcVar2)(local_c0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar2)(local_c0)" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "(local_c0)" (( "(") (identifier "local_c0") () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar21 = auStack_ec;" (assignment_expression "puVar21 = auStack_ec" (identifier "puVar21") (= "=") (identifier "auStack_ec")) (; ";")) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e4 = local_94 + 0xbc;" (assignment_expression "local_e4 = local_94 + 0xbc" (identifier "local_e4") (= "=") (binary_expression "local_94 + 0xbc" (identifier "local_94") (+ "+") (number_literal "0xbc"))) (; ";")) (expression_statement "puVar6 = auStack_ec;" (assignment_expression "puVar6 = auStack_ec" (identifier "puVar6") (= "=") (identifier "auStack_ec")) (; ";")) (expression_statement "local_e0 = local_e4;" (assignment_expression "local_e0 = local_e4" (identifier "local_e0") (= "=") (identifier "local_e4")) (; ";")) (if_statement "if (param_5 != 0) {\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);\n  }" ({ "{") (do_statement "do {\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    } while (param_5 != local_a8);" (do "do") (compound_statement "{\n      puVar21 = puVar6;\n      local_b8 = *param_4;\n      if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }\n      local_a8 = local_a8 + 1;\n      param_4 = param_4 + 2;\n      puVar6 = puVar21;\n    }" ({ "{") (expression_statement "puVar21 = puVar6;" (assignment_expression "puVar21 = puVar6" (identifier "puVar21") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "local_b8 = *param_4;" (assignment_expression "local_b8 = *param_4" (identifier "local_b8") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (if_statement "if (local_d1 == '\0') {\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }\n      else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" (if "if") (parenthesized_expression "(local_d1 == '\0')" (( "(") (binary_expression "local_d1 == '\0'" (identifier "local_d1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0004e1d8:\n        local_6c = (byte *)0x0;\n        local_68 = 0xffffffff;\n        uVar10 = param_4[1];\n        local_64 = 0x80000000;\n        local_60 = 0;\n        local_a4 = (undefined4 *)(uVar10 >> 8);\n        if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }\n        local_c4 = &local_5c;\n        local_b0 = uVar10 & 0xff;\n        local_c8 = param_9 + local_b8;\n        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }\n        *(byte ***)(puVar21 + -0x10) = local_c4;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;\n        FUN_00056330();\n        *(byte ***)(puVar21 + -0x10) = local_ac;\n        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;\n        FUN_00056330();\n      }" ({ "{") (labeled_statement "LAB_0004e1d8:\n        local_6c = (byte *)0x0;" (statement_identifier "LAB_0004e1d8") (: ":") (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" (identifier "local_6c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "local_68 = 0xffffffff;" (assignment_expression "local_68 = 0xffffffff" (identifier "local_68") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" (identifier "uVar10") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_64 = 0x80000000;" (assignment_expression "local_64 = 0x80000000" (identifier "local_64") (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4 = (undefined4 *)(uVar10 >> 8);" (assignment_expression "local_a4 = (undefined4 *)(uVar10 >> 8)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *)(uVar10 >> 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar10 >> 8)" (( "(") (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (local_a4 < local_dc) {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }\n        else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" (if "if") (parenthesized_expression "(local_a4 < local_dc)" (( "(") (binary_expression "local_a4 < local_dc" (identifier "local_a4") (< "<") (identifier "local_dc")) () ")")) (compound_statement "{\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }\n          local_90 = (undefined4 *)local_c0[0x38];\n          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }\n          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);\n          local_b0 = (uint)local_9c[2] & 0x7ffffff;\n          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          local_90 = (undefined4 *)local_c0[0xf];\n          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);\n          if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }\n          *(uint *)(puVar21 + -8) = local_b0;\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;\n          cVar7 = FUN_0014ebc0();\n          if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }\nLAB_0004f331:\n          local_ac = &local_6c;\n          local_a0 = &local_4c;\n          iVar15 = *local_c0;\n          *(undefined4 *)(puVar21 + -8) = param_2[6];\n          *(int **)(puVar21 + -0xc) = local_c0;\n          *(byte ***)(puVar21 + -0x10) = local_a0;\n          local_c4 = &local_5c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n                    \n          pcVar2 = *(code **)(iVar15 + 0x40);\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;\n          (*pcVar2)();\n          puVar20 = puVar21 + -4;\n          bVar23 = false;\n          bVar25 = local_b4 == 0;\n          if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }\n          if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }\n          local_5c = (byte *)0xffffffff;\n          if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }\n          local_9c = &local_5c;\n          uVar10 = param_4[1];\n        }" ({ "{") (if_statement "if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          {\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }" (if "if") (parenthesized_expression "((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))" (( "(") (binary_expression "(param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (parenthesized_expression "(param_11 != (int *)0x0)" (( "(") (binary_expression "param_11 != (int *)0x0" (identifier "param_11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (( "(") (comma_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0" (assignment_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4)" (identifier "local_90") (= "=") (pointer_expression "*(undefined4 **)(*param_11 + local_a8 * 4)" (* "*") (cast_expression "(undefined4 **)(*param_11 + local_a8 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_11 + local_a8 * 4)" (( "(") (binary_expression "*param_11 + local_a8 * 4" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (+ "+") (binary_expression "local_a8 * 4" (identifier "local_a8") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "local_90 != (undefined4 *)0x0" (identifier "local_90") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\nLAB_0004e238:\n            pbVar14 = (byte *)local_90[4];\n            pbVar17 = pbVar14 + -1;\n            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;\nLAB_0004e24d:\n            local_6c = (byte *)0xffffffff;\n            pbVar14 = local_6c;\n            goto LAB_0004e254;\n          }" ({ "{") (labeled_statement "LAB_0004e238:\n            pbVar14 = (byte *)local_90[4];" (statement_identifier "LAB_0004e238") (: ":") (expression_statement "pbVar14 = (byte *)local_90[4];" (assignment_expression "pbVar14 = (byte *)local_90[4]" (identifier "pbVar14") (= "=") (cast_expression "(byte *)local_90[4]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_90[4]" (identifier "local_90") ([ "[") (number_literal "4") (] "]")))) (; ";"))) (expression_statement "pbVar17 = pbVar14 + -1;" (assignment_expression "pbVar17 = pbVar14 + -1" (identifier "pbVar17") (= "=") (binary_expression "pbVar14 + -1" (identifier "pbVar14") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;" (if "if") (parenthesized_expression "(pbVar17 < (byte *)0xfffffffe)" (( "(") (binary_expression "pbVar17 < (byte *)0xfffffffe" (identifier "pbVar17") (< "<") (cast_expression "(byte *)0xfffffffe" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) () ")")) (goto_statement "goto LAB_0004f6b0;" (goto "goto") (statement_identifier "LAB_0004f6b0") (; ";"))) (labeled_statement "LAB_0004e24d:\n            local_6c = (byte *)0xffffffff;" (statement_identifier "LAB_0004e24d") (: ":") (expression_statement "local_6c = (byte *)0xffffffff;" (assignment_expression "local_6c = (byte *)0xffffffff" (identifier "local_6c") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (expression_statement "pbVar14 = local_6c;" (assignment_expression "pbVar14 = local_6c" (identifier "pbVar14") (= "=") (identifier "local_6c")) (; ";")) (goto_statement "goto LAB_0004e254;" (goto "goto") (statement_identifier "LAB_0004e254") (; ";")) (} "}"))) (expression_statement "local_90 = (undefined4 *)local_c0[0x38];" (assignment_expression "local_90 = (undefined4 *)local_c0[0x38]" (identifier "local_90") (= "=") (cast_expression "(undefined4 *)local_c0[0x38]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_c0[0x38]" (identifier "local_c0") ([ "[") (number_literal "0x38") (] "]")))) (; ";")) (if_statement "if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }" (if "if") (parenthesized_expression "((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4)" (( "(") (binary_expression "(undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4" (cast_expression "(undefined4 *)((int)local_90 - local_c0[0x37] >> 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 - local_c0[0x37] >> 4)" (( "(") (binary_expression "(int)local_90 - local_c0[0x37] >> 4" (binary_expression "(int)local_90 - local_c0[0x37]" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (- "-") (subscript_expression "local_c0[0x37]" (identifier "local_c0") ([ "[") (number_literal "0x37") (] "]"))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (identifier "local_a4")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50169;\n            FUN_0008b620();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c62b" (identifier "local_94") (+ "+") (number_literal "-0x3c62b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x8c1;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x8c1" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8c1")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x50169;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x50169" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x50169")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);" (assignment_expression "local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10)" (identifier "local_9c") (= "=") (cast_expression "(byte **)(local_c0[0x37] + (int)local_a4 * 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c0[0x37] + (int)local_a4 * 0x10)" (( "(") (binary_expression "local_c0[0x37] + (int)local_a4 * 0x10" (subscript_expression "local_c0[0x37]" (identifier "local_c0") ([ "[") (number_literal "0x37") (] "]")) (+ "+") (binary_expression "(int)local_a4 * 0x10" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "local_b0 = (uint)local_9c[2] & 0x7ffffff;" (assignment_expression "local_b0 = (uint)local_9c[2] & 0x7ffffff" (identifier "local_b0") (= "=") (binary_expression "(uint)local_9c[2] & 0x7ffffff" (cast_expression "(uint)local_9c[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_9c[2]" (identifier "local_9c") ([ "[") (number_literal "2") (] "]"))) (& "&") (number_literal "0x7ffffff"))) (; ";")) (if_statement "if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" (if "if") (parenthesized_expression "(((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0))" (( "(") (binary_expression "((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)" (parenthesized_expression "((*(byte *)((int)local_9c + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_9c + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_9c + 0xb) & 8)" (( "(") (binary_expression "*(byte *)((int)local_9c + 0xb) & 8" (pointer_expression "*(byte *)((int)local_9c + 0xb)" (* "*") (cast_expression "(byte *)((int)local_9c + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0xb)" (( "(") (binary_expression "(int)local_9c + 0xb" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" ({ "{") (expression_statement "local_90 = (undefined4 *)0x0;" (assignment_expression "local_90 = (undefined4 *)0x0" (identifier "local_90") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e2a0;" (goto "goto") (statement_identifier "LAB_0004e2a0") (; ";")) (} "}"))) (expression_statement "local_90 = (undefined4 *)local_c0[0xf];" (assignment_expression "local_90 = (undefined4 *)local_c0[0xf]" (identifier "local_90") (= "=") (cast_expression "(undefined4 *)local_c0[0xf]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_c0[0xf]" (identifier "local_c0") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (if_statement "if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }" (if "if") (parenthesized_expression "((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0)" (( "(") (binary_expression "(uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0" (call_expression "(uint)((int)local_90 - local_c0[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_90 - local_c0[0xe] >> 2)" (( "(") (binary_expression "(int)local_90 - local_c0[0xe] >> 2" (binary_expression "(int)local_90 - local_c0[0xe]" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (- "-") (subscript_expression "local_c0[0xe]" (identifier "local_c0") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "local_b0")) () ")")) (compound_statement "{\n            *(uint *)(puVar21 + -4) = local_b0;\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;\n            *(undefined4 *)(puVar21 + -0xc) = 0x50b;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;\n            FUN_0008b620();\n          }" ({ "{") (expression_statement "*(uint *)(puVar21 + -4) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -4) = local_b0" (pointer_expression "*(uint *)(puVar21 + -4)" (* "*") (cast_expression "(uint *)(puVar21 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c6d7" (identifier "local_94") (+ "+") (number_literal "-0x3c6d7"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x50b;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x50b" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x50b")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_000502ba" (& "&") (identifier "LAB_000502ba"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);" (assignment_expression "local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4)" (identifier "local_90") (= "=") (pointer_expression "*(undefined4 **)(local_c0[0xe] + local_b0 * 4)" (* "*") (cast_expression "(undefined4 **)(local_c0[0xe] + local_b0 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c0[0xe] + local_b0 * 4)" (( "(") (binary_expression "local_c0[0xe] + local_b0 * 4" (subscript_expression "local_c0[0xe]" (identifier "local_c0") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "local_b0 * 4" (identifier "local_b0") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (local_90 != (undefined4 *)0x0) {\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" (if "if") (parenthesized_expression "(local_90 != (undefined4 *)0x0)" (( "(") (binary_expression "local_90 != (undefined4 *)0x0" (identifier "local_90") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_90 = (undefined4 *)0x0;\n            goto LAB_0004e2a0;\n          }" ({ "{") (expression_statement "local_90 = (undefined4 *)0x0;" (assignment_expression "local_90 = (undefined4 *)0x0" (identifier "local_90") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e2a0;" (goto "goto") (statement_identifier "LAB_0004e2a0") (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar21 + -8) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -8) = local_b0" (pointer_expression "*(uint *)(puVar21 + -8)" (* "*") (cast_expression "(uint *)(puVar21 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(int **)(puVar21 + -0xc) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_c0" (pointer_expression "*(int **)(puVar21 + -0xc)" (* "*") (cast_expression "(int **)(puVar21 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = *param_2;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = *param_2" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4fd1a" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4fd1a")) (; ";")) (expression_statement "cVar7 = FUN_0014ebc0();" (assignment_expression "cVar7 = FUN_0014ebc0()" (identifier "cVar7") (= "=") (call_expression "FUN_0014ebc0()" (identifier "FUN_0014ebc0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') {\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar10 = param_4[1];\n            goto LAB_0004e2a0;\n          }" ({ "{") (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" (identifier "uVar10") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_0004e2a0;" (goto "goto") (statement_identifier "LAB_0004e2a0") (; ";")) (} "}"))) (labeled_statement "LAB_0004f331:\n          local_ac = &local_6c;" (statement_identifier "LAB_0004f331") (: ":") (expression_statement "local_ac = &local_6c;" (assignment_expression "local_ac = &local_6c" (identifier "local_ac") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "iVar15 = *local_c0;" (assignment_expression "iVar15 = *local_c0" (identifier "iVar15") (= "=") (pointer_expression "*local_c0" (* "*") (identifier "local_c0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -8) = param_2[6];" (assignment_expression "*(undefined4 *)(puVar21 + -8) = param_2[6]" (pointer_expression "*(undefined4 *)(puVar21 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(int **)(puVar21 + -0xc) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_c0" (pointer_expression "*(int **)(puVar21 + -0xc)" (* "*") (cast_expression "(int **)(puVar21 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0x10)" (* "*") (cast_expression "(byte ***)(puVar21 + -0x10)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "local_c4 = &local_5c;" (assignment_expression "local_c4 = &local_5c" (identifier "local_c4") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "local_5c = (byte *)0x0;" (assignment_expression "local_5c = (byte *)0x0" (identifier "local_5c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" (identifier "local_58") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_54 = 0x80000000;" (assignment_expression "local_54 = 0x80000000" (identifier "local_54") (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" (identifier "local_50") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar15 + 0x40);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0x40)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar15 + 0x40)" (* "*") (cast_expression "(code **)(iVar15 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x40)" (( "(") (binary_expression "iVar15 + 0x40" (identifier "iVar15") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f375;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f375" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f375")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = puVar21 + -4;" (assignment_expression "puVar20 = puVar21 + -4" (identifier "puVar20") (= "=") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = local_b4 == 0;" (assignment_expression "bVar25 = local_b4 == 0" (identifier "bVar25") (= "=") (binary_expression "local_b4 == 0" (identifier "local_b4") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar25) {\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }\n          else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n            iVar15 = 6;\n            pbVar17 = local_4c;\n            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }\nLAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;\n            *(byte ***)(puVar21 + -0xc) = local_a0;\n            *(uint *)(puVar21 + -0x10) = local_b0;\n            *(int **)(puVar21 + -0x14) = local_c0;\n                    \n            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;\n            iVar15 = FUN_000c2280();\n            local_50 = (byte *)0x0;\n            if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }\n            local_b4 = 1;\n            puVar21 = puVar21 + -4;\n          }" ({ "{") (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" (identifier "iVar15") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3ac3);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3ac3)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf3ac3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf3ac3)" (( "(") (binary_expression "(int)local_94 + -0xf3ac3" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3ac3")) () ")")))) (; ";")) (do_statement "do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" (do "do") (compound_statement "{\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar17 < *pbVar14;" (assignment_expression "bVar23 = *pbVar17 < *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar25 = *pbVar17 == *pbVar14;" (assignment_expression "bVar25 = *pbVar17 == *pbVar14" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" (identifier "bVar23") (= "=") (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (!bVar23) {\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n              iVar15 = 7;\n              pbVar17 = local_4c;\n              ppuVar19 = local_94 + -0x3ceaf;\n              do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);\n              bVar25 = false;\n              bVar23 = (!bVar24 && !bVar23) == bVar24;\n              if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" (identifier "iVar15") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "ppuVar19 = local_94 + -0x3ceaf;" (assignment_expression "ppuVar19 = local_94 + -0x3ceaf" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + -0x3ceaf" (identifier "local_94") (+ "+") (number_literal "-0x3ceaf"))) (; ";")) (do_statement "do {\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              } while (bVar23);" (do "do") (compound_statement "{\n                if (iVar15 == 0) break;\n                iVar15 = iVar15 + -1;\n                bVar24 = *pbVar17 < *(byte *)ppuVar19;\n                bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n              }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar24 = *pbVar17 < *(byte *)ppuVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" (identifier "bVar23") (= "=") (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" (( "(") (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar23) {\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                iVar15 = 0x11;\n                pbVar17 = local_4c;\n                ppuVar19 = local_94 + -0x3cead;\n                do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);\n                bVar24 = false;\n                bVar23 = (!bVar25 && !bVar23) == bVar25;\n                if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" (identifier "iVar15") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "ppuVar19 = local_94 + -0x3cead;" (assignment_expression "ppuVar19 = local_94 + -0x3cead" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + -0x3cead" (identifier "local_94") (+ "+") (number_literal "-0x3cead"))) (; ";")) (do_statement "do {\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                } while (bVar23);" (do "do") (compound_statement "{\n                  if (iVar15 == 0) break;\n                  iVar15 = iVar15 + -1;\n                  bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                  bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar17 < *(byte *)ppuVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" (identifier "bVar23") (= "=") (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar23) {\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                  iVar15 = 5;\n                  pbVar17 = local_4c;\n                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  bVar25 = false;\n                  bVar23 = (!bVar24 && !bVar23) == bVar24;\n                  if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" (identifier "iVar15") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3aa2);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3aa2)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf3aa2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf3aa2)" (( "(") (binary_expression "(int)local_94 + -0xf3aa2" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3aa2")) () ")")))) (; ";")) (do_statement "do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);" (do "do") (compound_statement "{\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar24 = *pbVar17 < *pbVar14;\n                    bVar23 = *pbVar17 == *pbVar14;\n                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" (identifier "bVar24") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" (identifier "bVar23") (= "=") (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" (( "(") (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar23) {\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                    iVar15 = 5;\n                    pbVar17 = local_4c;\n                    ppuVar19 = local_94 + -0x3cea7;\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);\n                    bVar24 = false;\n                    bVar23 = (!bVar25 && !bVar23) == bVar25;\n                    if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" (identifier "iVar15") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "ppuVar19 = local_94 + -0x3cea7;" (assignment_expression "ppuVar19 = local_94 + -0x3cea7" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + -0x3cea7" (identifier "local_94") (+ "+") (number_literal "-0x3cea7"))) (; ";")) (do_statement "do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    } while (bVar23);" (do "do") (compound_statement "{\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar25 = *pbVar17 < *(byte *)ppuVar19;\n                      bVar23 = *pbVar17 == *(byte *)ppuVar19;\n                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                    }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar17 < *(byte *)ppuVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *(byte *)ppuVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar17 == *(byte *)ppuVar19" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *(byte *)ppuVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" (identifier "bVar23") (= "=") (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar23) {\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                      iVar15 = 4;\n                      pbVar17 = local_4c;\n                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);\n                      bVar25 = false;\n                      bVar23 = (!bVar24 && !bVar23) == bVar24;\n                      if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }\n                    }" ({ "{") (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" (identifier "iVar15") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3a96);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3a96)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf3a96)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf3a96)" (( "(") (binary_expression "(int)local_94 + -0xf3a96" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3a96")) () ")")))) (; ";")) (do_statement "do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      } while (bVar23);" (do "do") (compound_statement "{\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar24 = *pbVar17 < *pbVar14;\n                        bVar23 = *pbVar17 == *pbVar14;\n                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                      }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" (identifier "bVar24") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" (identifier "bVar23") (= "=") (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" (( "(") (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar23) {\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                        iVar15 = 10;\n                        pbVar17 = local_4c;\n                        pbVar14 = (byte *)((int)local_94 + -0xf1212);\n                        do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);\n                        bVar24 = false;\n                        bVar23 = (!bVar25 && !bVar23) == bVar25;\n                        if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }\n                        goto LAB_0004f5da;\n                      }" ({ "{") (expression_statement "iVar15 = 10;" (assignment_expression "iVar15 = 10" (identifier "iVar15") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf1212);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf1212)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf1212)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf1212)" (( "(") (binary_expression "(int)local_94 + -0xf1212" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf1212")) () ")")))) (; ";")) (do_statement "do {\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        } while (bVar23);" (do "do") (compound_statement "{\n                          if (iVar15 == 0) break;\n                          iVar15 = iVar15 + -1;\n                          bVar25 = *pbVar17 < *pbVar14;\n                          bVar23 = *pbVar17 == *pbVar14;\n                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                        }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" (identifier "bVar23") (= "=") (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar23) {\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                          iVar15 = 0x12;\n                          pbVar17 = local_4c;\n                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;\n                        }" ({ "{") (expression_statement "iVar15 = 0x12;" (assignment_expression "iVar15 = 0x12" (identifier "iVar15") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" (identifier "pbVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3a91);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3a91)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf3a91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf3a91)" (( "(") (binary_expression "(int)local_94 + -0xf3a91" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3a91")) () ")")))) (; ";")) (do_statement "do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);" (do "do") (compound_statement "{\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar24 = *pbVar17 < *pbVar14;\n                            bVar23 = *pbVar17 == *pbVar14;\n                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                          }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar17 < *pbVar14;" (assignment_expression "bVar24 = *pbVar17 < *pbVar14" (identifier "bVar24") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;" (if "if") (parenthesized_expression "((!bVar24 && !bVar23) != bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar23) != bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" (( "(") (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar24")) () ")")) (goto_statement "goto LAB_0004f50a;" (goto "goto") (statement_identifier "LAB_0004f50a") (; ";"))) (} "}"))) (goto_statement "goto LAB_0004f5da;" (goto "goto") (statement_identifier "LAB_0004f5da") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0004f3ac:\n            *(undefined1 ***)(puVar21 + -8) = local_34;" (statement_identifier "LAB_0004f3ac") (: ":") (expression_statement "*(undefined1 ***)(puVar21 + -8) = local_34;" (assignment_expression "*(undefined1 ***)(puVar21 + -8) = local_34" (pointer_expression "*(undefined1 ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined1 ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_34")) (; ";"))) (expression_statement "*(byte ***)(puVar21 + -0xc) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0xc) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0xc)" (* "*") (cast_expression "(byte ***)(puVar21 + -0xc)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x10) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -0x10) = local_b0" (pointer_expression "*(uint *)(puVar21 + -0x10)" (* "*") (cast_expression "(uint *)(puVar21 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(int **)(puVar21 + -0x14) = local_c0;" (assignment_expression "*(int **)(puVar21 + -0x14) = local_c0" (pointer_expression "*(int **)(puVar21 + -0x14)" (* "*") (cast_expression "(int **)(puVar21 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f3cd" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x4f3cd")) (; ";")) (expression_statement "iVar15 = FUN_000c2280();" (assignment_expression "iVar15 = FUN_000c2280()" (identifier "iVar15") (= "=") (call_expression "FUN_000c2280()" (identifier "FUN_000c2280") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" (identifier "local_50") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((char)local_34[0] != '\0') {\n              local_50 = local_9c[3] + iVar15;\n            }" (if "if") (parenthesized_expression "((char)local_34[0] != '\0')" (( "(") (binary_expression "(char)local_34[0] != '\0'" (cast_expression "(char)local_34[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_50 = local_9c[3] + iVar15;\n            }" ({ "{") (expression_statement "local_50 = local_9c[3] + iVar15;" (assignment_expression "local_50 = local_9c[3] + iVar15" (identifier "local_50") (= "=") (binary_expression "local_9c[3] + iVar15" (subscript_expression "local_9c[3]" (identifier "local_9c") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "iVar15"))) (; ";")) (} "}"))) (expression_statement "local_b4 = 1;" (assignment_expression "local_b4 = 1" (identifier "local_b4") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar21 = puVar21 + -4;" (assignment_expression "puVar21 = puVar21 + -4" (identifier "puVar21") (= "=") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (else_clause "else {\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" (else "else") (compound_statement "{\n            if (local_b4 == 1) goto LAB_0004f3ac;\n            if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }\n            local_50 = (byte *)0x0;\n            puVar21 = puVar20;\n          }" ({ "{") (if_statement "if (local_b4 == 1) goto LAB_0004f3ac;" (if "if") (parenthesized_expression "(local_b4 == 1)" (( "(") (binary_expression "local_b4 == 1" (identifier "local_b4") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004f3ac;" (goto "goto") (statement_identifier "LAB_0004f3ac") (; ";"))) (if_statement "if (local_b4 == 3) {\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }\n            else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" (if "if") (parenthesized_expression "(local_b4 == 3)" (( "(") (binary_expression "local_b4 == 3" (identifier "local_b4") (== "==") (number_literal "3")) () ")")) (compound_statement "{\nLAB_0004f50a:\n              uVar11 = param_2[2];\n              if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }\n              *(undefined1 **)(puVar20 + -4) = local_82;\n              *(undefined1 **)(puVar20 + -8) = local_80;\n              *(undefined4 **)(puVar20 + -0xc) = local_a4;\n              *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;\n              iVar15 = FUN_000c5610();\n              if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }\n              local_b4 = 3;\n            }" ({ "{") (labeled_statement "LAB_0004f50a:\n              uVar11 = param_2[2];" (statement_identifier "LAB_0004f50a") (: ":") (expression_statement "uVar11 = param_2[2];" (assignment_expression "uVar11 = param_2[2]" (identifier "uVar11") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (local_90 == (undefined4 *)0x0) {\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }\n              else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" (if "if") (parenthesized_expression "(local_90 == (undefined4 *)0x0)" (( "(") (binary_expression "local_90 == (undefined4 *)0x0" (identifier "local_90") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                *(undefined4 **)(puVar21 + -0x10) = local_a4;\n                *(undefined4 *)(puVar21 + -0x14) = uVar11;\n                    \n                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;\n                uVar13 = FUN_000c62d0();\n                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;\n                uVar12 = gettext();\n                *(undefined4 **)(puVar21 + -0xc) = local_a4;\n                *(undefined4 *)(puVar21 + -0x10) = uVar13;\n                *(undefined4 *)(puVar21 + -0x14) = uVar12;\n                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x1c) = local_b8;\n                *(int *)(puVar21 + -0x20) = local_a8;\n                *(undefined4 **)(puVar21 + -0x24) = param_2;\n                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;\n                FUN_00082e10();\n                puVar20 = puVar21 + -4;\n              }" ({ "{") (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_a4;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_a4" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f94d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f94d" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x4f94d")) (; ";")) (expression_statement "uVar13 = FUN_000c62d0();" (assignment_expression "uVar13 = FUN_000c62d0()" (identifier "uVar13") (= "=") (call_expression "FUN_000c62d0()" (identifier "FUN_000c62d0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;" (assignment_expression "*(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa" (pointer_expression "*(undefined ***)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined ***)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cdfa" (identifier "local_94") (+ "+") (number_literal "-0x3cdfa"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f965;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f965" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x4f965")) (; ";")) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" (identifier "uVar12") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_a4;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_a4" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = uVar12;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = uVar12" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x18)" (* "*") (cast_expression "(int *)(puVar21 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x1c) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x1c) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x1c)" (* "*") (cast_expression "(uint *)(puVar21 + -0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x20) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x20) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x20)" (* "*") (cast_expression "(int *)(puVar21 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x24) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x24) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x24)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x28) = 0x4f98d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x28) = 0x4f98d" (pointer_expression "*(undefined4 *)(puVar21 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x28)" (( "(") (binary_expression "puVar21 + -0x28" (identifier "puVar21") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0x4f98d")) (; ";")) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" (identifier "FUN_00082e10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = puVar21 + -4;" (assignment_expression "puVar20 = puVar21 + -4" (identifier "puVar20") (= "=") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (else_clause "else {\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" (else "else") (compound_statement "{\n                *(undefined4 **)(puVar21 + -0x10) = local_90;\n                *(undefined1 ***)(puVar21 + -0x14) = local_34;\n                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;\n                FUN_0014f9f0();\n                puVar6 = local_34[0];\n                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;\n                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;\n                uVar13 = gettext();\n                *(undefined1 **)(puVar21 + -0x14) = puVar6;\n                *(undefined4 *)(puVar21 + -0x18) = uVar13;\n                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x20) = local_b8;\n                *(int *)(puVar21 + -0x24) = local_a8;\n                *(undefined4 **)(puVar21 + -0x28) = param_2;\n                    \n                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;\n                FUN_00082e10();\n                puVar20 = puVar21 + -8;\n                if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }\n              }" ({ "{") (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined1 ***)(puVar21 + -0x14) = local_34;" (assignment_expression "*(undefined1 ***)(puVar21 + -0x14) = local_34" (pointer_expression "*(undefined1 ***)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 ***)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = 0x4f536;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = 0x4f536" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x4f536")) (; ";")) (expression_statement "FUN_0014f9f0();" (call_expression "FUN_0014f9f0()" (identifier "FUN_0014f9f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar6 = local_34[0];" (assignment_expression "puVar6 = local_34[0]" (identifier "puVar6") (= "=") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;" (assignment_expression "*(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4" (pointer_expression "*(undefined ***)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined ***)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cde4" (identifier "local_94") (+ "+") (number_literal "-0x3cde4"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1c) = 0x4f54d" (pointer_expression "*(undefined4 *)(puVar21 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x4f54d")) (; ";")) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" (identifier "uVar13") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = puVar6;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = puVar6" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x18) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -0x18) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x1c)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x20) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x20) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x20)" (* "*") (cast_expression "(uint *)(puVar21 + -0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x24) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x24) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x24)" (* "*") (cast_expression "(int *)(puVar21 + -0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x28) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x28) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x28)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x28)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x28)" (( "(") (binary_expression "puVar21 + -0x28" (identifier "puVar21") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = 0x4f570;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = 0x4f570" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x2c)" (( "(") (binary_expression "puVar21 + -0x2c" (identifier "puVar21") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (number_literal "0x4f570")) (; ";")) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" (identifier "FUN_00082e10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = puVar21 + -8;" (assignment_expression "puVar20 = puVar21 + -8" (identifier "puVar20") (= "=") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8"))) (; ";")) (if_statement "if (local_34[0] != local_2c) {\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }" (if "if") (parenthesized_expression "(local_34[0] != local_2c)" (( "(") (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];\n                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;\n                  FUN_001ac470();\n                  puVar20 = puVar21 + -8;\n                }" ({ "{") (expression_statement "*(undefined1 **)(puVar21 + -0x18) = local_34[0];" (assignment_expression "*(undefined1 **)(puVar21 + -0x18) = local_34[0]" (pointer_expression "*(undefined1 **)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x1c) = 0x4f586;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1c) = 0x4f586" (pointer_expression "*(undefined4 *)(puVar21 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x4f586")) (; ";")) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" (identifier "FUN_001ac470") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = puVar21 + -8;" (assignment_expression "puVar20 = puVar21 + -8" (identifier "puVar20") (= "=") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(undefined1 **)(puVar20 + -4) = local_82;" (assignment_expression "*(undefined1 **)(puVar20 + -4) = local_82" (pointer_expression "*(undefined1 **)(puVar20 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_82")) (; ";")) (expression_statement "*(undefined1 **)(puVar20 + -8) = local_80;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = local_80" (pointer_expression "*(undefined1 **)(puVar20 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_80")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = local_a4;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = local_a4" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f5a3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f5a3")) (; ";")) (expression_statement "iVar15 = FUN_000c5610();" (assignment_expression "iVar15 = FUN_000c5610()" (identifier "iVar15") (= "=") (call_expression "FUN_000c5610()" (identifier "FUN_000c5610") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(int **)(puVar20 + -8) = &local_7c;\n                *(int *)(puVar20 + -0xc) = iVar15;\n                *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;\n                iVar15 = FUN_000c24f0();\n                if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }\n                if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }\n              }" ({ "{") (expression_statement "*(int **)(puVar20 + -8) = &local_7c;" (assignment_expression "*(int **)(puVar20 + -8) = &local_7c" (pointer_expression "*(int **)(puVar20 + -8)" (* "*") (cast_expression "(int **)(puVar20 + -8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (expression_statement "*(int *)(puVar20 + -0xc) = iVar15;" (assignment_expression "*(int *)(puVar20 + -0xc) = iVar15" (pointer_expression "*(int *)(puVar20 + -0xc)" (* "*") (cast_expression "(int *)(puVar20 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f844;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f844" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f844")) (; ";")) (expression_statement "iVar15 = FUN_000c24f0();" (assignment_expression "iVar15 = FUN_000c24f0()" (identifier "iVar15") (= "=") (call_expression "FUN_000c24f0()" (identifier "FUN_000c24f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_7c != 0) {\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }" (if "if") (parenthesized_expression "(local_7c != 0)" (( "(") (binary_expression "local_7c != 0" (identifier "local_7c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *(int *)(puVar20 + -0xc) = local_7c;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar11;\n                    \n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;\n                  uVar11 = FUN_000c62d0();\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;\n                  FUN_00082930();\n                }" ({ "{") (expression_statement "*(int *)(puVar20 + -0xc) = local_7c;" (assignment_expression "*(int *)(puVar20 + -0xc) = local_7c" (pointer_expression "*(int *)(puVar20 + -0xc)" (* "*") (cast_expression "(int *)(puVar20 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff50;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff50" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ff50")) (; ";")) (expression_statement "uVar11 = FUN_000c62d0();" (assignment_expression "uVar11 = FUN_000c62d0()" (identifier "uVar11") (= "=") (call_expression "FUN_000c62d0()" (identifier "FUN_000c62d0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;" (assignment_expression "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf" (pointer_expression "*(undefined ***)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cdcf" (identifier "local_94") (+ "+") (number_literal "-0x3cdcf"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff68;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff68" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ff68")) (; ";")) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" (identifier "uVar13") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4ff77;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4ff77" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ff77")) (; ";")) (expression_statement "FUN_00082930();" (call_expression "FUN_00082930()" (identifier "FUN_00082930") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar15 != 0) {\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar11 = *(undefined4 *)(iVar15 + 4);\n                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;\n                  uVar13 = gettext();\n                  *(undefined4 *)(puVar20 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar20 + -0x10) = uVar13;\n                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;\n                  FUN_00082930();\n                }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)(iVar15 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar15 + 4)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(iVar15 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 4)" (( "(") (binary_expression "iVar15 + 4" (identifier "iVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;" (assignment_expression "*(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7" (pointer_expression "*(undefined ***)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cdc7" (identifier "local_94") (+ "+") (number_literal "-0x3cdc7"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f876;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f876" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f876")) (; ";")) (expression_statement "uVar13 = gettext();" (assignment_expression "uVar13 = gettext()" (identifier "uVar13") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = uVar13;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = uVar13" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x4f87f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x4f87f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f87f")) (; ";")) (expression_statement "FUN_00082930();" (call_expression "FUN_00082930()" (identifier "FUN_00082930") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_b4 = 3;" (assignment_expression "local_b4 = 3" (identifier "local_b4") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\nLAB_0004f5da:\n              local_b4 = 2;\n            }" (else "else") (compound_statement "{\nLAB_0004f5da:\n              local_b4 = 2;\n            }" ({ "{") (labeled_statement "LAB_0004f5da:\n              local_b4 = 2;" (statement_identifier "LAB_0004f5da") (: ":") (expression_statement "local_b4 = 2;" (assignment_expression "local_b4 = 2" (identifier "local_b4") (= "=") (number_literal "2")) (; ";"))) (} "}")))) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" (identifier "local_50") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" (identifier "puVar21") (= "=") (identifier "puVar20")) (; ";")) (} "}")))) (if_statement "if (local_5c != (byte *)0x0) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }" (if "if") (parenthesized_expression "(local_5c != (byte *)0x0)" (( "(") (binary_expression "local_5c != (byte *)0x0" (identifier "local_5c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n            *(undefined4 *)(puVar21 + -0xc) = 0x716;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x50110;\n            FUN_0008b620();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c71c" (identifier "local_94") (+ "+") (number_literal "-0x3c71c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x716")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x50110;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x50110" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x50110")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = (byte *)0xffffffff;" (assignment_expression "local_5c = (byte *)0xffffffff" (identifier "local_5c") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (local_4c != local_44) {\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }" (if "if") (parenthesized_expression "(local_4c != local_44)" (( "(") (binary_expression "local_4c != local_44" (identifier "local_4c") (!= "!=") (identifier "local_44")) () ")")) (compound_statement "{\n            *(byte **)(puVar21 + -0x10) = local_4c;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;\n            FUN_001ac470();\n          }" ({ "{") (expression_statement "*(byte **)(puVar21 + -0x10) = local_4c;" (assignment_expression "*(byte **)(puVar21 + -0x10) = local_4c" (pointer_expression "*(byte **)(puVar21 + -0x10)" (* "*") (cast_expression "(byte **)(puVar21 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f41b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f41b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f41b")) (; ";")) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" (identifier "FUN_001ac470") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_9c = &local_5c;" (assignment_expression "local_9c = &local_5c" (identifier "local_9c") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" (identifier "uVar10") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" (else "else") (compound_statement "{\n          if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;\n          if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }\n          uVar10 = (int)local_a4 - local_c0[0x2c];\n          local_90 = (undefined4 *)local_c0[0x30];\n          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }\n          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);\n          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;\n          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;\n          *(undefined4 **)(puVar21 + -0xc) = local_90;\n          *(undefined4 *)(puVar21 + -0x10) = *param_2;\n                    \n          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;\n          local_90 = (undefined4 *)FUN_0014ec30();\n          pbVar14 = (byte *)local_90[4];\n          pbVar17 = pbVar14 + -1;\n          if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }\n          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }\nLAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;\nLAB_0004e254:\n          local_6c = pbVar14;\n          local_60 = local_90[0xc];\n          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }\n          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }\nLAB_0004e2a0:\n          local_ac = &local_6c;\n          local_5c = (byte *)0x0;\n          local_58 = 0xffffffff;\n          local_54 = 0x80000000;\n          local_50 = (byte *)0x0;\n        }" ({ "{") (if_statement "if ((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))\n          goto LAB_0004e238;" (if "if") (parenthesized_expression "((param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))" (( "(") (binary_expression "(param_11 != (int *)0x0) &&\n             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (parenthesized_expression "(param_11 != (int *)0x0)" (( "(") (binary_expression "param_11 != (int *)0x0" (identifier "param_11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0)" (( "(") (comma_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0" (assignment_expression "local_90 = *(undefined4 **)(*param_11 + local_a8 * 4)" (identifier "local_90") (= "=") (pointer_expression "*(undefined4 **)(*param_11 + local_a8 * 4)" (* "*") (cast_expression "(undefined4 **)(*param_11 + local_a8 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_11 + local_a8 * 4)" (( "(") (binary_expression "*param_11 + local_a8 * 4" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (+ "+") (binary_expression "local_a8 * 4" (identifier "local_a8") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "local_90 != (undefined4 *)0x0" (identifier "local_90") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_0004e238;" (goto "goto") (statement_identifier "LAB_0004e238") (; ";"))) (if_statement "if (local_a4 < (undefined4 *)local_c0[0x2c]) {\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }" (if "if") (parenthesized_expression "(local_a4 < (undefined4 *)local_c0[0x2c])" (( "(") (binary_expression "local_a4 < (undefined4 *)local_c0[0x2c]" (identifier "local_a4") (< "<") (cast_expression "(undefined4 *)local_c0[0x2c]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_c0[0x2c]" (identifier "local_c0") ([ "[") (number_literal "0x2c") (] "]")))) () ")")) (compound_statement "{\nLAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;\n            *(undefined4 *)(puVar21 + -0xc) = 0x17f;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;\n            FUN_0008b620();\n          }" ({ "{") (labeled_statement "LAB_00050110:\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;" (statement_identifier "LAB_00050110") (: ":") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c70f" (identifier "local_94") (+ "+") (number_literal "-0x3c70f"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x17f;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x17f" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x17f")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3b27"))) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_00050131;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_00050131" (pointer_expression "*(undefined **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_00050131" (& "&") (identifier "UNK_00050131"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = (int)local_a4 - local_c0[0x2c];" (assignment_expression "uVar10 = (int)local_a4 - local_c0[0x2c]" (identifier "uVar10") (= "=") (binary_expression "(int)local_a4 - local_c0[0x2c]" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (- "-") (subscript_expression "local_c0[0x2c]" (identifier "local_c0") ([ "[") (number_literal "0x2c") (] "]")))) (; ";")) (expression_statement "local_90 = (undefined4 *)local_c0[0x30];" (assignment_expression "local_90 = (undefined4 *)local_c0[0x30]" (identifier "local_90") (= "=") (cast_expression "(undefined4 *)local_c0[0x30]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_c0[0x30]" (identifier "local_c0") ([ "[") (number_literal "0x30") (] "]")))) (; ";")) (if_statement "if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }" (if "if") (parenthesized_expression "((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10)" (( "(") (binary_expression "(uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10" (call_expression "(uint)((int)local_90 - local_c0[0x2f] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_90 - local_c0[0x2f] >> 2)" (( "(") (binary_expression "(int)local_90 - local_c0[0x2f] >> 2" (binary_expression "(int)local_90 - local_c0[0x2f]" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (- "-") (subscript_expression "local_c0[0x2f]" (identifier "local_c0") ([ "[") (number_literal "0x2f") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar10")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;\n            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;\n            FUN_0008b620();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c6c2" (identifier "local_94") (+ "+") (number_literal "-0x3c6c2"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x5018a;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x5018a" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x5018a")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);" (assignment_expression "local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" (identifier "local_90") (= "=") (pointer_expression "*(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" (* "*") (cast_expression "(undefined4 **)(local_c0[0x2f] + uVar10 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c0[0x2f] + uVar10 * 4)" (( "(") (binary_expression "local_c0[0x2f] + uVar10 * 4" (subscript_expression "local_c0[0x2f]" (identifier "local_c0") ([ "[") (number_literal "0x2f") (] "]")) (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (local_90 == (undefined4 *)0x0) goto LAB_00050110;" (if "if") (parenthesized_expression "(local_90 == (undefined4 *)0x0)" (( "(") (binary_expression "local_90 == (undefined4 *)0x0" (identifier "local_90") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00050110;" (goto "goto") (statement_identifier "LAB_00050110") (; ";"))) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 0x10)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e238;" (goto "goto") (statement_identifier "LAB_0004e238") (; ";"))) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = *param_2;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = *param_2" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f795;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f795" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f795")) (; ";")) (expression_statement "local_90 = (undefined4 *)FUN_0014ec30();" (assignment_expression "local_90 = (undefined4 *)FUN_0014ec30()" (identifier "local_90") (= "=") (cast_expression "(undefined4 *)FUN_0014ec30()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014ec30()" (identifier "FUN_0014ec30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)local_90[4];" (assignment_expression "pbVar14 = (byte *)local_90[4]" (identifier "pbVar14") (= "=") (cast_expression "(byte *)local_90[4]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_90[4]" (identifier "local_90") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "pbVar17 = pbVar14 + -1;" (assignment_expression "pbVar17 = pbVar14 + -1" (identifier "pbVar17") (= "=") (binary_expression "pbVar14 + -1" (identifier "pbVar14") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if ((byte *)0xfffffffd < pbVar17) {\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }" (if "if") (parenthesized_expression "((byte *)0xfffffffd < pbVar17)" (( "(") (binary_expression "(byte *)0xfffffffd < pbVar17" (cast_expression "(byte *)0xfffffffd" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffd")) (< "<") (identifier "pbVar17")) () ")")) (compound_statement "{\n            if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }\n            goto LAB_0004e24d;\n          }" ({ "{") (if_statement "if (local_6c != (byte *)0x0) {\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }" (if "if") (parenthesized_expression "(local_6c != (byte *)0x0)" (( "(") (binary_expression "local_6c != (byte *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;\n              *(undefined4 *)(puVar21 + -0xc) = 0x716;\n              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;\n              FUN_0008b620();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c71c" (identifier "local_94") (+ "+") (number_literal "-0x3c71c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x716;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x716" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x716")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9" (pointer_expression "*(undefined **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_0004f7d9" (& "&") (identifier "UNK_0004f7d9"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0004e24d;" (goto "goto") (statement_identifier "LAB_0004e24d") (; ";")) (} "}"))) (if_statement "if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }" (if "if") (parenthesized_expression "((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe))" (( "(") (binary_expression "(local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)" (parenthesized_expression "(local_6c != (byte *)0x0)" (( "(") (binary_expression "local_6c != (byte *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_6c != (byte *)0xfffffffe)" (( "(") (binary_expression "local_6c != (byte *)0xfffffffe" (identifier "local_6c") (!= "!=") (cast_expression "(byte *)0xfffffffe" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) () ")"))) () ")")) (compound_statement "{\n            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n            *(undefined4 *)(puVar21 + -0xc) = 0x70c;\n            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;\n                    \n                    \n            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;\n            FUN_0008b620();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c715" (identifier "local_94") (+ "+") (number_literal "-0x3c715"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x70c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x70c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x70c")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3c7b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x500a1;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x500a1" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x500a1")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0004f6b0:\n          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;" (statement_identifier "LAB_0004f6b0") (: ":") (if_statement "if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;" (if "if") (parenthesized_expression "(pbVar17 == (byte *)0xfffffffd)" (( "(") (binary_expression "pbVar17 == (byte *)0xfffffffd" (identifier "pbVar17") (== "==") (cast_expression "(byte *)0xfffffffd" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffd"))) () ")")) (goto_statement "goto LAB_00050198;" (goto "goto") (statement_identifier "LAB_00050198") (; ";")))) (labeled_statement "LAB_0004e254:\n          local_6c = pbVar14;" (statement_identifier "LAB_0004e254") (: ":") (expression_statement "local_6c = pbVar14;" (assignment_expression "local_6c = pbVar14" (identifier "local_6c") (= "=") (identifier "pbVar14")) (; ";"))) (expression_statement "local_60 = local_90[0xc];" (assignment_expression "local_60 = local_90[0xc]" (identifier "local_60") (= "=") (subscript_expression "local_90[0xc]" (identifier "local_90") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) == 6) {\n            local_64 = local_64 | 0x20000000;\n          }\n          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) == 6)" (( "(") (binary_expression "(*(byte *)(local_90 + 10) & 0xf) == 6" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            local_64 = local_64 | 0x20000000;\n          }" ({ "{") (expression_statement "local_64 = local_64 | 0x20000000;" (assignment_expression "local_64 = local_64 | 0x20000000" (identifier "local_64") (= "=") (binary_expression "local_64 | 0x20000000" (identifier "local_64") (| "|") (number_literal "0x20000000"))) (; ";")) (} "}")) (else_clause "else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" (else "else") (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) == 10) {\n            local_64 = local_64 | 0x40000000;\n          }" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) == 10)" (( "(") (binary_expression "(*(byte *)(local_90 + 10) & 0xf) == 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n            local_64 = local_64 | 0x40000000;\n          }" ({ "{") (expression_statement "local_64 = local_64 | 0x40000000;" (assignment_expression "local_64 = local_64 | 0x40000000" (identifier "local_64") (= "=") (binary_expression "local_64 | 0x40000000" (identifier "local_64") (| "|") (number_literal "0x40000000"))) (; ";")) (} "}"))))) (if_statement "if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }\n          else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" (if "if") (parenthesized_expression "((char)*(byte *)((int)local_90 + 0x2b) < '\0')" (( "(") (binary_expression "(char)*(byte *)((int)local_90 + 0x2b) < '\0'" (cast_expression "(char)*(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n          }" ({ "{") (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }\n            else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" ({ "{") (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }" (if "if") (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" (( "(") (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" (identifier "local_90") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0004f318:\n                local_b0 = 0;\n                local_9c = &local_6c;\n                goto LAB_0004f331;\n              }" ({ "{") (labeled_statement "LAB_0004f318:\n                local_b0 = 0;" (statement_identifier "LAB_0004f318") (: ":") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" (identifier "local_9c") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (goto_statement "goto LAB_0004f331;" (goto "goto") (statement_identifier "LAB_0004f331") (; ";")) (} "}"))) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" (identifier "local_9c") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" (identifier "uVar10") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" (else "else") (compound_statement "{\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;\n              local_9c = &local_6c;\n              uVar10 = param_4[1];\n            }" ({ "{") (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004f318;" (goto "goto") (statement_identifier "LAB_0004f318") (; ";"))) (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" (identifier "local_9c") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" (identifier "uVar10") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" (else "else") (compound_statement "{\n            local_9c = &local_6c;\n            uVar10 = param_4[1];\n          }" ({ "{") (expression_statement "local_9c = &local_6c;" (assignment_expression "local_9c = &local_6c" (identifier "local_9c") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "uVar10 = param_4[1];" (assignment_expression "uVar10 = param_4[1]" (identifier "uVar10") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_0004e2a0:\n          local_ac = &local_6c;" (statement_identifier "LAB_0004e2a0") (: ":") (expression_statement "local_ac = &local_6c;" (assignment_expression "local_ac = &local_6c" (identifier "local_ac") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";"))) (expression_statement "local_5c = (byte *)0x0;" (assignment_expression "local_5c = (byte *)0x0" (identifier "local_5c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" (identifier "local_58") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_54 = 0x80000000;" (assignment_expression "local_54 = 0x80000000" (identifier "local_54") (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "local_50 = (byte *)0x0;" (assignment_expression "local_50 = (byte *)0x0" (identifier "local_50") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "local_c4 = &local_5c;" (assignment_expression "local_c4 = &local_5c" (identifier "local_c4") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "local_b0 = uVar10 & 0xff;" (assignment_expression "local_b0 = uVar10 & 0xff" (identifier "local_b0") (= "=") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "local_c8 = param_9 + local_b8;" (assignment_expression "local_c8 = param_9 + local_b8" (identifier "local_c8") (= "=") (binary_expression "param_9 + local_b8" (identifier "param_9") (+ "+") (identifier "local_b8"))) (; ";")) (if_statement "if (((int)local_b8 < 0) || (param_10 <= local_b8)) {\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }\n        else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" (if "if") (parenthesized_expression "(((int)local_b8 < 0) || (param_10 <= local_b8))" (( "(") (binary_expression "((int)local_b8 < 0) || (param_10 <= local_b8)" (parenthesized_expression "((int)local_b8 < 0)" (( "(") (binary_expression "(int)local_b8 < 0" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_10 <= local_b8)" (( "(") (binary_expression "param_10 <= local_b8" (identifier "param_10") (<= "<=") (identifier "local_b8")) () ")"))) () ")")) (compound_statement "{\n          local_a4 = (undefined4 *)0x0;\n          local_78 = param_4;\n          if (local_74 != '\0') goto LAB_0004f130;\nLAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;\n          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;\n          uVar11 = gettext();\n          *(uint *)(puVar21 + -0xc) = local_b8;\n          *(undefined4 *)(puVar21 + -0x10) = uVar11;\n          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;\n          *(uint *)(puVar21 + -0x18) = local_b8;\n          *(int *)(puVar21 + -0x1c) = local_a8;\n          *(undefined4 **)(puVar21 + -0x20) = param_2;\n          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;\n          FUN_00082e10();\n        }" ({ "{") (expression_statement "local_a4 = (undefined4 *)0x0;" (assignment_expression "local_a4 = (undefined4 *)0x0" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" (identifier "local_78") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_74 != '\0') goto LAB_0004f130;" (if "if") (parenthesized_expression "(local_74 != '\0')" (( "(") (binary_expression "local_74 != '\0'" (identifier "local_74") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004f130;" (goto "goto") (statement_identifier "LAB_0004f130") (; ";"))) (labeled_statement "LAB_0004f1c0:\n          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;" (statement_identifier "LAB_0004f1c0") (: ":") (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3a7f" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3a7f"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f1d7" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f1d7")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0xc) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0xc)" (* "*") (cast_expression "(uint *)(puVar21 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x14)" (* "*") (cast_expression "(int *)(puVar21 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x18) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x18) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x18)" (* "*") (cast_expression "(uint *)(puVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4f1f4" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x4f1f4")) (; ";")) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" (identifier "FUN_00082e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" (else "else") (compound_statement "{\n          local_a4 = (undefined4 *)(local_b8 + param_8);\n          local_78 = param_4;\n          if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }\n        }" ({ "{") (expression_statement "local_a4 = (undefined4 *)(local_b8 + param_8);" (assignment_expression "local_a4 = (undefined4 *)(local_b8 + param_8)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *)(local_b8 + param_8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_b8 + param_8)" (( "(") (binary_expression "local_b8 + param_8" (identifier "local_b8") (+ "+") (identifier "param_8")) () ")")))) (; ";")) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" (identifier "local_78") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_74 == '\0') {\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }\n          else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" (if "if") (parenthesized_expression "(local_74 == '\0')" (( "(") (binary_expression "local_74 == '\0'" (identifier "local_74") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0004e30b:\n            ppuVar19 = local_94;\n            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;\n            local_4c = (byte *)0x0;\n            local_48 = 0xffffffff;\n            local_bc = (int *)param_2[2];\n            local_44[0] = 0;\n            local_44[1] = 0;\n            local_44[2] = 0;\n            local_44[3] = 0x80;\n            local_40 = 0;\n            if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }\n            *(byte ***)(puVar21 + -0x10) = local_a0;\n            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;\n            FUN_00056330();\n            if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }\n          }" ({ "{") (labeled_statement "LAB_0004e30b:\n            ppuVar19 = local_94;" (statement_identifier "LAB_0004e30b") (: ":") (expression_statement "ppuVar19 = local_94;" (assignment_expression "ppuVar19 = local_94" (identifier "ppuVar19") (= "=") (identifier "local_94")) (; ";"))) (if_statement "if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;" (if "if") (parenthesized_expression "(local_a4 == (undefined4 *)0x0)" (( "(") (binary_expression "local_a4 == (undefined4 *)0x0" (identifier "local_a4") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004f1c0;" (goto "goto") (statement_identifier "LAB_0004f1c0") (; ";"))) (expression_statement "local_4c = (byte *)0x0;" (assignment_expression "local_4c = (byte *)0x0" (identifier "local_4c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = 0xffffffff;" (assignment_expression "local_48 = 0xffffffff" (identifier "local_48") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_bc = (int *)param_2[2];" (assignment_expression "local_bc = (int *)param_2[2]" (identifier "local_bc") (= "=") (cast_expression "(int *)param_2[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[1] = 0;" (assignment_expression "local_44[1] = 0" (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[2] = 0;" (assignment_expression "local_44[2] = 0" (subscript_expression "local_44[2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[3] = 0x80;" (assignment_expression "local_44[3] = 0x80" (subscript_expression "local_44[3]" (identifier "local_44") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x80")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_90 == (undefined4 *)0x0) {\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }\n            else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" (if "if") (parenthesized_expression "(local_90 == (undefined4 *)0x0)" (( "(") (binary_expression "local_90 == (undefined4 *)0x0" (identifier "local_90") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }\n              local_a0 = &local_4c;\n              if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }\nLAB_0004e736:\n              local_a0 = &local_4c;\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;\n              uVar11 = gettext();\n              *(uint *)(puVar21 + -0xc) = local_b0;\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;\n              FUN_00082e10();\n            }" ({ "{") (if_statement "if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }" (if "if") (parenthesized_expression "((*(byte *)((int)local_9c + 0xb) & 0x40) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_9c + 0xb) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)local_9c + 0xb) & 0x40)" (( "(") (binary_expression "*(byte *)((int)local_9c + 0xb) & 0x40" (pointer_expression "*(byte *)((int)local_9c + 0xb)" (* "*") (cast_expression "(byte *)((int)local_9c + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0xb)" (( "(") (binary_expression "(int)local_9c + 0xb" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar10 = local_78[1];\n                local_a0 = &local_4c;\n                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                *(int **)(puVar21 + -0x10) = local_bc;\n                    \n                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;\n                cVar7 = FUN_000c21d0();\n                if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }\n              }" ({ "{") (expression_statement "uVar10 = local_78[1];" (assignment_expression "uVar10 = local_78[1]" (identifier "uVar10") (= "=") (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar10 >> 8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar10 >> 8" (pointer_expression "*(uint *)(puVar21 + -0xc)" (* "*") (cast_expression "(uint *)(puVar21 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "*(int **)(puVar21 + -0x10) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0x10) = local_bc" (pointer_expression "*(int **)(puVar21 + -0x10)" (* "*") (cast_expression "(int **)(puVar21 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f227;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f227" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f227")) (; ";")) (expression_statement "cVar7 = FUN_000c21d0();" (assignment_expression "cVar7 = FUN_000c21d0()" (identifier "cVar7") (= "=") (call_expression "FUN_000c21d0()" (identifier "FUN_000c21d0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') {\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  piVar5 = *(int **)(param_1 + 0x18);\n                  if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }\n                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;\n                  local_9c = (byte **)piVar5[1];\n                  local_98 = piVar5[2];\n                  iVar15 = piVar5[0x10];\n                  iVar16 = *piVar5;\n                  *(int **)(puVar21 + -0x10) = piVar5;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar16 + 100);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;\n                  iVar16 = (*pcVar2)();\n                  uVar18 = (iVar15 + 1) * iVar16;\n                  bVar23 = CARRY4(uVar18,(uint)local_9c);\n                  local_9c = (byte **)(uVar18 + (int)local_9c);\n                  local_98 = local_98 + (uint)bVar23;\n                  iVar15 = *local_bc;\n                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;\n                  *(int **)(puVar21 + -0x10) = local_bc;\n                  local_a0 = &local_4c;\n                  pcVar2 = *(code **)(iVar15 + 0xa8);\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;\n                  local_40 = (*pcVar2)();\n                  local_40 = local_40 + (int)local_9c;\n                  local_9c = &local_4c;\n                }" ({ "{") (expression_statement "piVar5 = *(int **)(param_1 + 0x18);" (assignment_expression "piVar5 = *(int **)(param_1 + 0x18)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(param_1 + 0x18)" (* "*") (cast_expression "(int **)(param_1 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50363;\n                    FUN_000494c0();\nLAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;\n                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;\n                    local_a0 = &local_4c;\n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;\n                    FUN_0008b620();\n                  }" ({ "{") (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x50363;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x50363" (pointer_expression "*(undefined4 *)(puVar21 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x50363")) (; ";")) (expression_statement "FUN_000494c0();" (call_expression "FUN_000494c0()" (identifier "FUN_000494c0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00050363:\n                    *(undefined ***)(puVar21 + -4) = ppuVar19;" (statement_identifier "LAB_00050363") (: ":") (expression_statement "*(undefined ***)(puVar21 + -4) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar21 + -4) = ppuVar19" (pointer_expression "*(undefined ***)(puVar21 + -4)" (* "*") (cast_expression "(undefined ***)(puVar21 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "ppuVar19")) (; ";"))) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c624" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c624" (identifier "local_94") (+ "+") (number_literal "-0x3c624"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc5")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3ca3" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3ca3"))) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_0005038b;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_0005038b" (pointer_expression "*(undefined **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_0005038b" (& "&") (identifier "UNK_0005038b"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;" (if "if") (parenthesized_expression "((*(byte *)(piVar5 + 7) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(piVar5 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 1)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 1" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050363;" (goto "goto") (statement_identifier "LAB_00050363") (; ";"))) (expression_statement "local_9c = (byte **)piVar5[1];" (assignment_expression "local_9c = (byte **)piVar5[1]" (identifier "local_9c") (= "=") (cast_expression "(byte **)piVar5[1]" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_98 = piVar5[2];" (assignment_expression "local_98 = piVar5[2]" (identifier "local_98") (= "=") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar15 = piVar5[0x10];" (assignment_expression "iVar15 = piVar5[0x10]" (identifier "iVar15") (= "=") (subscript_expression "piVar5[0x10]" (identifier "piVar5") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "iVar16 = *piVar5;" (assignment_expression "iVar16 = *piVar5" (identifier "iVar16") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "*(int **)(puVar21 + -0x10) = piVar5;" (assignment_expression "*(int **)(puVar21 + -0x10) = piVar5" (pointer_expression "*(int **)(puVar21 + -0x10)" (* "*") (cast_expression "(int **)(puVar21 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar5")) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar16 + 100);" (assignment_expression "pcVar2 = *(code **)(iVar16 + 100)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar16 + 100)" (* "*") (cast_expression "(code **)(iVar16 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 100)" (( "(") (binary_expression "iVar16 + 100" (identifier "iVar16") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f274;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f274" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f274")) (; ";")) (expression_statement "iVar16 = (*pcVar2)();" (assignment_expression "iVar16 = (*pcVar2)()" (identifier "iVar16") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar18 = (iVar15 + 1) * iVar16;" (assignment_expression "uVar18 = (iVar15 + 1) * iVar16" (identifier "uVar18") (= "=") (binary_expression "(iVar15 + 1) * iVar16" (parenthesized_expression "(iVar15 + 1)" (( "(") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1")) () ")")) (* "*") (identifier "iVar16"))) (; ";")) (expression_statement "bVar23 = CARRY4(uVar18,(uint)local_9c);" (assignment_expression "bVar23 = CARRY4(uVar18,(uint)local_9c)" (identifier "bVar23") (= "=") (call_expression "CARRY4(uVar18,(uint)local_9c)" (identifier "CARRY4") (argument_list "(uVar18,(uint)local_9c)" (( "(") (identifier "uVar18") (, ",") (cast_expression "(uint)local_9c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_9c")) () ")")))) (; ";")) (expression_statement "local_9c = (byte **)(uVar18 + (int)local_9c);" (assignment_expression "local_9c = (byte **)(uVar18 + (int)local_9c)" (identifier "local_9c") (= "=") (cast_expression "(byte **)(uVar18 + (int)local_9c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar18 + (int)local_9c)" (( "(") (binary_expression "uVar18 + (int)local_9c" (identifier "uVar18") (+ "+") (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c"))) () ")")))) (; ";")) (expression_statement "local_98 = local_98 + (uint)bVar23;" (assignment_expression "local_98 = local_98 + (uint)bVar23" (identifier "local_98") (= "=") (binary_expression "local_98 + (uint)bVar23" (identifier "local_98") (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (expression_statement "iVar15 = *local_bc;" (assignment_expression "iVar15 = *local_bc" (identifier "iVar15") (= "=") (pointer_expression "*local_bc" (* "*") (identifier "local_bc"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar10 >> 8;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar10 >> 8" (pointer_expression "*(uint *)(puVar21 + -0xc)" (* "*") (cast_expression "(uint *)(puVar21 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "*(int **)(puVar21 + -0x10) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0x10) = local_bc" (pointer_expression "*(int **)(puVar21 + -0x10)" (* "*") (cast_expression "(int **)(puVar21 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar15 + 0xa8);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0xa8)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar15 + 0xa8)" (* "*") (cast_expression "(code **)(iVar15 + 0xa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0xa8)" (( "(") (binary_expression "iVar15 + 0xa8" (identifier "iVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f2ae" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f2ae")) (; ";")) (expression_statement "local_40 = (*pcVar2)();" (assignment_expression "local_40 = (*pcVar2)()" (identifier "local_40") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_40 = local_40 + (int)local_9c;" (assignment_expression "local_40 = local_40 + (int)local_9c" (identifier "local_40") (= "=") (binary_expression "local_40 + (int)local_9c" (identifier "local_40") (+ "+") (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")))) (; ";")) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" (identifier "local_9c") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (if_statement "if (local_b0 < 0xfc) {\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }" (if "if") (parenthesized_expression "(local_b0 < 0xfc)" (( "(") (binary_expression "local_b0 < 0xfc" (identifier "local_b0") (< "<") (number_literal "0xfc")) () ")")) (compound_statement "{\n                    \n                    \n                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();\n                return;\n              }" ({ "{") (expression_statement "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))" (( "(") (pointer_expression "*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" (* "*") (cast_expression "(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94[local_b0 - 0x3cb99] + (int)local_94)" (( "(") (binary_expression "local_94[local_b0 - 0x3cb99] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cb99]" (identifier "local_94") ([ "[") (binary_expression "local_b0 - 0x3cb99" (identifier "local_b0") (- "-") (number_literal "0x3cb99")) (] "]")) (+ "+") (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0004e736:\n              local_a0 = &local_4c;" (statement_identifier "LAB_0004e736") (: ":") (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";"))) (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_94 + -0x3ceb6" (identifier "local_94") (+ "+") (number_literal "-0x3ceb6"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e847;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e847" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4e847")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0xc) = local_b0;" (assignment_expression "*(uint *)(puVar21 + -0xc) = local_b0" (pointer_expression "*(uint *)(puVar21 + -0xc)" (* "*") (cast_expression "(uint *)(puVar21 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar10 = *local_78;" (assignment_expression "uVar10 = *local_78" (identifier "uVar10") (= "=") (pointer_expression "*local_78" (* "*") (identifier "local_78"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x18) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -0x18) = uVar10" (pointer_expression "*(uint *)(puVar21 + -0x18)" (* "*") (cast_expression "(uint *)(puVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4e867;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4e867" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x4e867")) (; ";")) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" (identifier "FUN_00082e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" (else "else") (compound_statement "{\n              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 1;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;\n              cVar7 = FUN_00055ca0();\n              puVar4 = local_90;\n              if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0xc) = 0;\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;\n              cVar7 = FUN_00055ed0();\n              if (cVar7 == '\0') goto LAB_0004f070;\n              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }\n              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;\nLAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;\n              cVar7 = FUN_00055b70();\n              if (cVar7 != '\0') goto LAB_0004f070;\n              local_a0 = &local_4c;\n              *(undefined4 *)(puVar21 + -0x10) = param_6;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;\n              cVar7 = FUN_0004c1a0();\n              puVar4 = local_a4;\n              if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }\n            }" ({ "{") (if_statement "if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }" (if "if") (parenthesized_expression "(((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1))" (( "(") (binary_expression "((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)" (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) != 10)" (( "(") (binary_expression "(*(byte *)(local_90 + 10) & 0xf) != 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "10")) () ")")) (|| "||") (parenthesized_expression "(local_b0 != 1)" (( "(") (binary_expression "local_b0 != 1" (identifier "local_b0") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n                uVar18 = 0;\n                uVar10 = local_b0 - 1;\n                if (uVar10 < 0x2b) goto LAB_0004f078;\nLAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }\nLAB_0004e466:\n                local_a0 = &local_4c;\n                if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }\n                goto LAB_0004e736;\n              }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = local_b0 - 1;" (assignment_expression "uVar10 = local_b0 - 1" (identifier "uVar10") (= "=") (binary_expression "local_b0 - 1" (identifier "local_b0") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar10 < 0x2b) goto LAB_0004f078;" (if "if") (parenthesized_expression "(uVar10 < 0x2b)" (( "(") (binary_expression "uVar10 < 0x2b" (identifier "uVar10") (< "<") (number_literal "0x2b")) () ")")) (goto_statement "goto LAB_0004f078;" (goto "goto") (statement_identifier "LAB_0004f078") (; ";"))) (labeled_statement "LAB_0004e381:\n                if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" (statement_identifier "LAB_0004e381") (: ":") (if_statement "if (local_90[6] != -1) {\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" (if "if") (parenthesized_expression "(local_90[6] != -1)" (( "(") (binary_expression "local_90[6] != -1" (subscript_expression "local_90[6]" (identifier "local_90") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }\nLAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }\n                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;\n                  local_a0 = &local_4c;\n                  local_40 = FUN_0004bfa0();\n                  local_9c = &local_4c;\n                }" ({ "{") (if_statement "if ((*(byte *)(local_90 + 10) & 0xf) != 10) {\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 10) & 0xf) != 10)" (( "(") (binary_expression "(*(byte *)(local_90 + 10) & 0xf) != 10" (parenthesized_expression "(*(byte *)(local_90 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(local_90 + 10) & 0xf" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n                    local_a0 = &local_4c;\n                    *(uint *)(puVar21 + -0xc) = uVar18;\n                    *(undefined4 **)(puVar21 + -0x10) = local_90;\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;\n                    cVar7 = FUN_00055ca0();\n                    if (cVar7 != '\0') goto LAB_0004e466;\n                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }\n                  }" ({ "{") (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0xc) = uVar18;" (assignment_expression "*(uint *)(puVar21 + -0xc) = uVar18" (pointer_expression "*(uint *)(puVar21 + -0xc)" (* "*") (cast_expression "(uint *)(puVar21 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e3c4" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4e3c4")) (; ";")) (expression_statement "cVar7 = FUN_00055ca0();" (assignment_expression "cVar7 = FUN_00055ca0()" (identifier "cVar7") (= "=") (call_expression "FUN_00055ca0()" (identifier "FUN_00055ca0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') goto LAB_0004e466;" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004e466;" (goto "goto") (statement_identifier "LAB_0004e466") (; ";"))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7" (identifier "bVar8") (= "=") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }" (if "if") (parenthesized_expression "(((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0))" (( "(") (binary_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||\n                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)" (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(local_90[2] + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(local_90[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(local_90[2] + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(local_90[2] + 0x2c) & 1" (pointer_expression "*(byte *)(local_90[2] + 0x2c)" (* "*") (cast_expression "(byte *)(local_90[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90[2] + 0x2c)" (( "(") (binary_expression "local_90[2] + 0x2c" (subscript_expression "local_90[2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                      ppuVar19 = local_94 + 0xbc;\n                      if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }\n                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }\n                      if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;\n                    }" ({ "{") (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + 0xbc" (identifier "local_94") (+ "+") (number_literal "0xbc"))) (; ";")) (if_statement "if (*(int *)(*ppuVar19 + 8) == 0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }" (if "if") (parenthesized_expression "(*(int *)(*ppuVar19 + 8) == 0)" (( "(") (binary_expression "*(int *)(*ppuVar19 + 8) == 0" (pointer_expression "*(int *)(*ppuVar19 + 8)" (* "*") (cast_expression "(int *)(*ppuVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppuVar19 + 8)" (( "(") (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                        local_a0 = &local_4c;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;\n                        FUN_0008b620();\n                      }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c69e" (identifier "local_94") (+ "+") (number_literal "-0x3c69e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8d93"))) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501dc;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501dc" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x501dc")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*ppuVar19 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(*ppuVar19 + 8) + 0x1a25" (pointer_expression "*(int *)(*ppuVar19 + 8)" (* "*") (cast_expression "(int *)(*ppuVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppuVar19 + 8)" (( "(") (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }\n                        goto LAB_0004e466;\n                      }" ({ "{") (labeled_statement "LAB_0004e454:\n                        if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" (statement_identifier "LAB_0004e454") (: ":") (if_statement "if ((uVar18 & 8) != 0) {\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" (if "if") (parenthesized_expression "((uVar18 & 8) != 0)" (( "(") (binary_expression "(uVar18 & 8) != 0" (parenthesized_expression "(uVar18 & 8)" (( "(") (binary_expression "uVar18 & 8" (identifier "uVar18") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;\n                        }" ({ "{") (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }\n                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                            if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }\n                          }" ({ "{") (if_statement "if ((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }" (if "if") (parenthesized_expression "((local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(local_90[3] == 0) &&\n                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" (( "(") (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" (identifier "local_90") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }\n                              goto LAB_0004eb80;\n                            }" ({ "{") (labeled_statement "LAB_0004ebf4:\n                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" (statement_identifier "LAB_0004ebf4") (: ":") (if_statement "if ((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0))" (( "(") (binary_expression "(*(byte *)(local_90 + 10) >> 4 != 2) &&\n                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" (( "(") (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" (* "*") (cast_expression "(byte *)(local_90 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0xb)" (( "(") (binary_expression "local_90 + 0xb" (identifier "local_90") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                                if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }\n                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;\n                              }" ({ "{") (if_statement "if (*(int *)(*ppuVar19 + 8) == 0) {\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }" (if "if") (parenthesized_expression "(*(int *)(*ppuVar19 + 8) == 0)" (( "(") (binary_expression "*(int *)(*ppuVar19 + 8) == 0" (pointer_expression "*(int *)(*ppuVar19 + 8)" (* "*") (cast_expression "(int *)(*ppuVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppuVar19 + 8)" (( "(") (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                                  *(undefined ***)(puVar21 + -4) = ppuVar19;\n                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                                  local_a0 = &local_4c;\n                    \n                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;\n                                  FUN_0008b620();\n                                }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -4) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar21 + -4) = ppuVar19" (pointer_expression "*(undefined ***)(puVar21 + -4)" (* "*") (cast_expression "(undefined ***)(puVar21 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "ppuVar19")) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c69e" (identifier "local_94") (+ "+") (number_literal "-0x3c69e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8d93"))) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_0005044d" (& "&") (identifier "LAB_0005044d"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')\n                                goto LAB_0004e466;" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0'" (pointer_expression "*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1)" (* "*") (cast_expression "(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*ppuVar19 + 8) + 0x49b1)" (( "(") (binary_expression "*(int *)(*ppuVar19 + 8) + 0x49b1" (pointer_expression "*(int *)(*ppuVar19 + 8)" (* "*") (cast_expression "(int *)(*ppuVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppuVar19 + 8)" (( "(") (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x49b1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004e466;" (goto "goto") (statement_identifier "LAB_0004e466") (; ";"))) (} "}")))) (goto_statement "goto LAB_0004eb80;" (goto "goto") (statement_identifier "LAB_0004eb80") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" (else "else") (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004ebf4;" (goto "goto") (statement_identifier "LAB_0004ebf4") (; ";"))))) (} "}")))) (goto_statement "goto LAB_0004e466;" (goto "goto") (statement_identifier "LAB_0004e466") (; ";")) (} "}"))) (if_statement "if (bVar8 == 0) {\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }\n                      else if (bVar8 != 4) goto LAB_0004e432;" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }\n                      }" ({ "{") (if_statement "if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }" (if "if") (parenthesized_expression "((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0))" (( "(") (binary_expression "(local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)" (parenthesized_expression "(local_90[3] != 0)" (( "(") (binary_expression "local_90[3] != 0" (subscript_expression "local_90[3]" (identifier "local_90") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;\n                          local_a0 = &local_4c;\n                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;\n                          cVar7 = FUN_00055b70();\n                          if (cVar7 == '\0') goto LAB_0004e454;\n                        }" ({ "{") (labeled_statement "LAB_0004e432:\n                          *(undefined4 **)(puVar21 + -0x10) = local_90;" (statement_identifier "LAB_0004e432") (: ":") (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_90")) (; ";"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e449;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e449" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4e449")) (; ";")) (expression_statement "cVar7 = FUN_00055b70();" (assignment_expression "cVar7 = FUN_00055b70()" (identifier "cVar7") (= "=") (call_expression "FUN_00055b70()" (identifier "FUN_00055b70") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto LAB_0004e454;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004e454;" (goto "goto") (statement_identifier "LAB_0004e454") (; ";"))) (} "}"))) (} "}")) (else_clause "else if (bVar8 != 4) goto LAB_0004e432;" (else "else") (if_statement "if (bVar8 != 4) goto LAB_0004e432;" (if "if") (parenthesized_expression "(bVar8 != 4)" (( "(") (binary_expression "bVar8 != 4" (identifier "bVar8") (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004e432;" (goto "goto") (statement_identifier "LAB_0004e432") (; ";"))))) (} "}"))) (} "}"))) (labeled_statement "LAB_0004eb80:\n                  if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" (statement_identifier "LAB_0004eb80") (: ":") (if_statement "if (*(int *)(param_1 + 0x18) == 0) {\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) == 0" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    local_a0 = &local_4c;\n                    \n                    *(undefined4 *)(puVar21 + -4) = 0x50198;\n                    FUN_000494c0();\nLAB_00050198:\n                    ppuVar19 = local_94;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;\n                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;\n                    \n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;\n                    FUN_0008b620();\n                  }" ({ "{") (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x50198;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x50198" (pointer_expression "*(undefined4 *)(puVar21 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x50198")) (; ";")) (expression_statement "FUN_000494c0();" (call_expression "FUN_000494c0()" (identifier "FUN_000494c0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00050198:\n                    ppuVar19 = local_94;" (statement_identifier "LAB_00050198") (: ":") (expression_statement "ppuVar19 = local_94;" (assignment_expression "ppuVar19 = local_94" (identifier "ppuVar19") (= "=") (identifier "local_94")) (; ";"))) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c715" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c715" (identifier "local_94") (+ "+") (number_literal "-0x3c715"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x70d;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x70d" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x70d")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)ppuVar19 + -0xf3c7b" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (number_literal "-0xf3c7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501b9;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501b9" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x501b9")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(puVar21 + -4) = 0x4eba2;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = 0x4eba2" (pointer_expression "*(undefined4 *)(puVar21 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x4eba2")) (; ";")) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "local_40 = FUN_0004bfa0();" (assignment_expression "local_40 = FUN_0004bfa0()" (identifier "local_40") (= "=") (call_expression "FUN_0004bfa0()" (identifier "FUN_0004bfa0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" (identifier "local_9c") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (} "}")))) (labeled_statement "LAB_0004e466:\n                local_a0 = &local_4c;" (statement_identifier "LAB_0004e466") (: ":") (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";"))) (if_statement "if (local_b0 < 0xfc) {\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }" (if "if") (parenthesized_expression "(local_b0 < 0xfc)" (( "(") (binary_expression "local_b0 < 0xfc" (identifier "local_b0") (< "<") (number_literal "0xfc")) () ")")) (compound_statement "{\n                    \n                    \n                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();\n                  return;\n                }" ({ "{") (expression_statement "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();" (call_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))()" (parenthesized_expression "(*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))" (( "(") (pointer_expression "*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" (* "*") (cast_expression "(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94[local_b0 - 0x3cc95] + (int)local_94)" (( "(") (binary_expression "local_94[local_b0 - 0x3cc95] + (int)local_94" (subscript_expression "local_94[local_b0 - 0x3cc95]" (identifier "local_94") ([ "[") (binary_expression "local_b0 - 0x3cc95" (identifier "local_b0") (- "-") (number_literal "0x3cc95")) (] "]")) (+ "+") (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0004e736;" (goto "goto") (statement_identifier "LAB_0004e736") (; ";")) (} "}"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea09;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea09" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ea09")) (; ";")) (expression_statement "cVar7 = FUN_00055ca0();" (assignment_expression "cVar7 = FUN_00055ca0()" (identifier "cVar7") (= "=") (call_expression "FUN_00055ca0()" (identifier "FUN_00055ca0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar4 = local_90;" (assignment_expression "puVar4 = local_90" (identifier "puVar4") (= "=") (identifier "local_90")) (; ";")) (if_statement "if (cVar7 == '\0') {\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0004f070:\n                uVar10 = 0;\nLAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));\n                goto LAB_0004e381;\n              }" ({ "{") (labeled_statement "LAB_0004f070:\n                uVar10 = 0;" (statement_identifier "LAB_0004f070") (: ":") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0004f078:\n                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));" (statement_identifier "LAB_0004f078") (: ":") (expression_statement "uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));" (assignment_expression "uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040))" (identifier "uVar18") (= "=") (binary_expression "(uint)*(char *)((int)local_94 + (uVar10 - 0xf2040))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)((int)local_94 + (uVar10 - 0xf2040))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + (uVar10 - 0xf2040))" (( "(") (binary_expression "(int)local_94 + (uVar10 - 0xf2040)" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (parenthesized_expression "(uVar10 - 0xf2040)" (( "(") (binary_expression "uVar10 - 0xf2040" (identifier "uVar10") (- "-") (number_literal "0xf2040")) () ")"))) () ")"))))) (; ";"))) (goto_statement "goto LAB_0004e381;" (goto "goto") (statement_identifier "LAB_0004e381") (; ";")) (} "}"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea2e" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ea2e")) (; ";")) (expression_statement "cVar7 = FUN_00055ed0();" (assignment_expression "cVar7 = FUN_00055ed0()" (identifier "cVar7") (= "=") (call_expression "FUN_00055ed0()" (identifier "FUN_00055ed0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto LAB_0004f070;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004f070;" (goto "goto") (statement_identifier "LAB_0004f070") (; ";"))) (if_statement "if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }" (if "if") (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)puVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)puVar4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)puVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + 0x2a)" (( "(") (binary_expression "(int)puVar4 + 0x2a" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;\n                goto LAB_0004f070;\n              }" ({ "{") (if_statement "if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;" (if "if") (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2a) & 7) != 4)" (( "(") (binary_expression "(*(byte *)((int)puVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)puVar4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)puVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + 0x2a)" (( "(") (binary_expression "(int)puVar4 + 0x2a" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004ea6a;" (goto "goto") (statement_identifier "LAB_0004ea6a") (; ";"))) (goto_statement "goto LAB_0004f070;" (goto "goto") (statement_identifier "LAB_0004f070") (; ";")) (} "}"))) (if_statement "if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))\n              goto LAB_0004f070;" (if "if") (parenthesized_expression "(((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))" (( "(") (binary_expression "((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||\n                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(puVar4[2] + 0x2c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(puVar4[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar4[2] + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(puVar4[2] + 0x2c) & 1" (pointer_expression "*(byte *)(puVar4[2] + 0x2c)" (* "*") (cast_expression "(byte *)(puVar4[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4[2] + 0x2c)" (( "(") (binary_expression "puVar4[2] + 0x2c" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)))" (( "(") (parenthesized_expression "(puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)" (binary_expression "puVar4[3] == 0" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)puVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)puVar4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)puVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + 0x2b)" (( "(") (binary_expression "(int)puVar4 + 0x2b" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0004f070;" (goto "goto") (statement_identifier "LAB_0004f070") (; ";"))) (labeled_statement "LAB_0004ea6a:\n              *(undefined4 **)(puVar21 + -0x10) = local_90;" (statement_identifier "LAB_0004ea6a") (: ":") (expression_statement "*(undefined4 **)(puVar21 + -0x10) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x10) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_90")) (; ";"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ea81;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ea81" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ea81")) (; ";")) (expression_statement "cVar7 = FUN_00055b70();" (assignment_expression "cVar7 = FUN_00055b70()" (identifier "cVar7") (= "=") (call_expression "FUN_00055b70()" (identifier "FUN_00055b70") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') goto LAB_0004f070;" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004f070;" (goto "goto") (statement_identifier "LAB_0004f070") (; ";"))) (expression_statement "local_a0 = &local_4c;" (assignment_expression "local_a0 = &local_4c" (identifier "local_a0") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = param_6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = param_6" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4eab3;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4eab3" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4eab3")) (; ";")) (expression_statement "cVar7 = FUN_0004c1a0();" (assignment_expression "cVar7 = FUN_0004c1a0()" (identifier "cVar7") (= "=") (call_expression "FUN_0004c1a0()" (identifier "FUN_0004c1a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar4 = local_a4;" (assignment_expression "puVar4 = local_a4" (identifier "puVar4") (= "=") (identifier "local_a4")) (; ";")) (if_statement "if (cVar7 != '\0') {\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                *(undefined4 *)(puVar21 + -8) = *local_a4;\n                *(int **)(puVar21 + -0xc) = local_bc;\n                *(byte ***)(puVar21 + -0x10) = local_9c;\n                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;\n                uVar11 = FUN_00056220();\n                *puVar4 = uVar11;\n              }" ({ "{") (expression_statement "*(undefined4 *)(puVar21 + -8) = *local_a4;" (assignment_expression "*(undefined4 *)(puVar21 + -8) = *local_a4" (pointer_expression "*(undefined4 *)(puVar21 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) (; ";")) (expression_statement "*(int **)(puVar21 + -0xc) = local_bc;" (assignment_expression "*(int **)(puVar21 + -0xc) = local_bc" (pointer_expression "*(int **)(puVar21 + -0xc)" (* "*") (cast_expression "(int **)(puVar21 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_9c;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_9c" (pointer_expression "*(byte ***)(puVar21 + -0x10)" (* "*") (cast_expression "(byte ***)(puVar21 + -0x10)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4eada;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4eada" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4eada")) (; ";")) (expression_statement "uVar11 = FUN_00056220();" (assignment_expression "uVar11 = FUN_00056220()" (identifier "uVar11") (= "=") (call_expression "FUN_00056220()" (identifier "FUN_00056220") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*puVar4 = uVar11;" (assignment_expression "*puVar4 = uVar11" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_a0;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_a0" (pointer_expression "*(byte ***)(puVar21 + -0x10)" (* "*") (cast_expression "(byte ***)(puVar21 + -0x10)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e4c6" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4e4c6")) (; ";")) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" (identifier "FUN_00056330") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_90 != (undefined4 *)0x0) {\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }" (if "if") (parenthesized_expression "(local_90 != (undefined4 *)0x0)" (( "(") (binary_expression "local_90 != (undefined4 *)0x0" (identifier "local_90") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n              uVar10 = uVar18 & 7;\n              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\nLAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }\n            }" ({ "{") (expression_statement "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);" (assignment_expression "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a)" (identifier "uVar18") (= "=") (binary_expression "(uint)*(byte *)((int)local_90 + 0x2a)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" (identifier "uVar10") (= "=") (binary_expression "uVar18 & 7" (identifier "uVar18") (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }\n              else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }\n                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }\nLAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" ({ "{") (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }\n                else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" (if "if") (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" (( "(") (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" (identifier "local_90") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }\nLAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));\n                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;\n                  uVar10 = (uint)bVar8;\n                  if (bVar8 != 0) goto LAB_0004eee0;\n                }" ({ "{") (labeled_statement "LAB_0004ecc9:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (statement_identifier "LAB_0004ecc9") (: ":") (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) () ")"))))) (; ";"))) (if_statement "if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     ) {\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)\n                     )" (( "(") (binary_expression "(*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" (( "(") (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" (* "*") (cast_expression "(byte *)(local_90 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0xb)" (( "(") (binary_expression "local_90 + 0xb" (identifier "local_90") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    iVar15 = *(int *)(local_94[0xbc] + 8);\n                    if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }\n                    if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }\n                  }" ({ "{") (expression_statement "iVar15 = *(int *)(local_94[0xbc] + 8);" (assignment_expression "iVar15 = *(int *)(local_94[0xbc] + 8)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(local_94[0xbc] + 8)" (* "*") (cast_expression "(int *)(local_94[0xbc] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94[0xbc] + 8)" (( "(") (binary_expression "local_94[0xbc] + 8" (subscript_expression "local_94[0xbc]" (identifier "local_94") ([ "[") (number_literal "0xbc") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar15 == 0) {\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      *(uint *)(puVar21 + -4) = uVar18;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;\n                      FUN_0008b620();\n                    }" ({ "{") (expression_statement "*(uint *)(puVar21 + -4) = uVar18;" (assignment_expression "*(uint *)(puVar21 + -4) = uVar18" (pointer_expression "*(uint *)(puVar21 + -4)" (* "*") (cast_expression "(uint *)(puVar21 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c69e" (identifier "local_94") (+ "+") (number_literal "-0x3c69e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x5029b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x5029b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x5029b")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar15 + 0x49b1) == '\0') {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }" (if "if") (parenthesized_expression "(*(char *)(iVar15 + 0x49b1) == '\0')" (( "(") (binary_expression "*(char *)(iVar15 + 0x49b1) == '\0'" (pointer_expression "*(char *)(iVar15 + 0x49b1)" (* "*") (cast_expression "(char *)(iVar15 + 0x49b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x49b1)" (( "(") (binary_expression "iVar15 + 0x49b1" (identifier "iVar15") (+ "+") (number_literal "0x49b1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      ppuVar19 = local_94 + 0xbc;\n                      if (-1 < (char)bVar8) goto LAB_0004ed70;\n                      if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }\nLAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);\n                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);\n                      bVar9 = bVar1 & 3;\n                      if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }\n                      goto LAB_0004e538;\n                    }" ({ "{") (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + 0xbc" (identifier "local_94") (+ "+") (number_literal "0xbc"))) (; ";")) (if_statement "if (-1 < (char)bVar8) goto LAB_0004ed70;" (if "if") (parenthesized_expression "(-1 < (char)bVar8)" (( "(") (binary_expression "-1 < (char)bVar8" (number_literal "-1") (< "<") (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8"))) () ")")) (goto_statement "goto LAB_0004ed70;" (goto "goto") (statement_identifier "LAB_0004ed70") (; ";"))) (if_statement "if ((char)uVar10 == '\0') {\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }" (if "if") (parenthesized_expression "((char)uVar10 == '\0')" (( "(") (binary_expression "(char)uVar10 == '\0'" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                        ppuVar19 = local_94 + -0xba878;\n                        goto LAB_0004ed40;\n                      }" ({ "{") (expression_statement "ppuVar19 = local_94 + -0xba878;" (assignment_expression "ppuVar19 = local_94 + -0xba878" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + -0xba878" (identifier "local_94") (+ "+") (number_literal "-0xba878"))) (; ";")) (goto_statement "goto LAB_0004ed40;" (goto "goto") (statement_identifier "LAB_0004ed40") (; ";")) (} "}"))) (labeled_statement "LAB_0004f8f7:\n                      bVar1 = *(byte *)((int)local_90 + 0x29);" (statement_identifier "LAB_0004f8f7") (: ":") (expression_statement "bVar1 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar1 = *(byte *)((int)local_90 + 0x29)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")"))))) (; ";"))) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1)" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar1)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,bVar1)" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,bVar1)" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar1") () ")"))))) (; ";")) (expression_statement "bVar9 = bVar1 & 3;" (assignment_expression "bVar9 = bVar1 & 3" (identifier "bVar9") (= "=") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3"))) (; ";")) (if_statement "if ((bVar1 & 3) != 0) {\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }" (if "if") (parenthesized_expression "((bVar1 & 3) != 0)" (( "(") (binary_expression "(bVar1 & 3) != 0" (parenthesized_expression "(bVar1 & 3)" (( "(") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        uVar10 = uVar18 & 7;\n                        goto LAB_0004eee0;\n                      }" ({ "{") (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" (identifier "uVar10") (= "=") (binary_expression "uVar18 & 7" (identifier "uVar18") (& "&") (number_literal "7"))) (; ";")) (goto_statement "goto LAB_0004eee0;" (goto "goto") (statement_identifier "LAB_0004eee0") (; ";")) (} "}"))) (goto_statement "goto LAB_0004e538;" (goto "goto") (statement_identifier "LAB_0004e538") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0004ef40:\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (statement_identifier "LAB_0004ef40") (: ":") (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) () ")"))))) (; ";"))) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" (identifier "bVar9") (= "=") (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (labeled_statement "LAB_0004eeb3:\n                  if (bVar9 == 0) goto LAB_0004efaf;" (statement_identifier "LAB_0004eeb3") (: ":") (if_statement "if (bVar9 == 0) goto LAB_0004efaf;" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004efaf;" (goto "goto") (statement_identifier "LAB_0004efaf") (; ";")))) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) () ")"))))) (; ";")) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2a) & 7" (identifier "bVar8") (= "=") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (expression_statement "uVar10 = (uint)bVar8;" (assignment_expression "uVar10 = (uint)bVar8" (identifier "uVar10") (= "=") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8"))) (; ";")) (if_statement "if (bVar8 != 0) goto LAB_0004eee0;" (if "if") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004eee0;" (goto "goto") (statement_identifier "LAB_0004eee0") (; ";"))) (} "}")) (else_clause "else {\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" (else "else") (compound_statement "{\n                  ppuVar19 = local_94 + -0xba878;\n                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                  if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }\nLAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                  bVar9 = bVar8 & 3;\n                  if ((bVar8 & 3) == 0) goto LAB_0004e534;\n                  uVar10 = uVar18 & 7;\n                }" ({ "{") (expression_statement "ppuVar19 = local_94 + -0xba878;" (assignment_expression "ppuVar19 = local_94 + -0xba878" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + -0xba878" (identifier "local_94") (+ "+") (number_literal "-0xba878"))) (; ";")) (expression_statement "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14)" (identifier "ppuVar3") (= "=") (pointer_expression "*(undefined ***)(*(int *)local_90[2] + 0x14)" (* "*") (cast_expression "(undefined ***)(*(int *)local_90[2] + 0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*(int *)local_90[2] + 0x14)" (( "(") (binary_expression "*(int *)local_90[2] + 0x14" (pointer_expression "*(int *)local_90[2]" (* "*") (cast_expression "(int *)local_90[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_90[2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (ppuVar3 != ppuVar19) {\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }" (if "if") (parenthesized_expression "(ppuVar3 != ppuVar19)" (( "(") (binary_expression "ppuVar3 != ppuVar19" (identifier "ppuVar3") (!= "!=") (identifier "ppuVar19")) () ")")) (compound_statement "{\n                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                    \n                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;\n                    iVar15 = (*(code *)ppuVar3)();\n                    if (iVar15 == 0) goto LAB_0004ef40;\n                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);\n                    uVar10 = uVar18 & 7;\n                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }\n                    if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }\n                    if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }\nLAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));\n                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                    goto LAB_0004eeb3;\n                  }" ({ "{") (expression_statement "*(int **)(puVar21 + -0x10) = (int *)local_90[2];" (assignment_expression "*(int **)(puVar21 + -0x10) = (int *)local_90[2]" (pointer_expression "*(int **)(puVar21 + -0x10)" (* "*") (cast_expression "(int **)(puVar21 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (cast_expression "(int *)local_90[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_90[2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f896;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f896" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f896")) (; ";")) (expression_statement "iVar15 = (*(code *)ppuVar3)();" (assignment_expression "iVar15 = (*(code *)ppuVar3)()" (identifier "iVar15") (= "=") (call_expression "(*(code *)ppuVar3)()" (parenthesized_expression "(*(code *)ppuVar3)" (( "(") (pointer_expression "*(code *)ppuVar3" (* "*") (cast_expression "(code *)ppuVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar3"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) goto LAB_0004ef40;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ef40;" (goto "goto") (statement_identifier "LAB_0004ef40") (; ";"))) (expression_statement "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);" (assignment_expression "uVar18 = (uint)*(byte *)((int)local_90 + 0x2a)" (identifier "uVar18") (= "=") (binary_expression "(uint)*(byte *)((int)local_90 + 0x2a)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" (identifier "uVar10") (= "=") (binary_expression "uVar18 & 7" (identifier "uVar18") (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }" (if "if") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if (-1 < (char)bVar8) goto LAB_0004f8c5;\n                      goto LAB_0004f8f7;\n                    }" ({ "{") (if_statement "if ((char)uVar10 == '\x04') goto LAB_0004ecc9;" (if "if") (parenthesized_expression "((char)uVar10 == '\x04')" (( "(") (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (goto_statement "goto LAB_0004ecc9;" (goto "goto") (statement_identifier "LAB_0004ecc9") (; ";"))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (if_statement "if (-1 < (char)bVar8) goto LAB_0004f8c5;" (if "if") (parenthesized_expression "(-1 < (char)bVar8)" (( "(") (binary_expression "-1 < (char)bVar8" (number_literal "-1") (< "<") (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8"))) () ")")) (goto_statement "goto LAB_0004f8c5;" (goto "goto") (statement_identifier "LAB_0004f8c5") (; ";"))) (goto_statement "goto LAB_0004f8f7;" (goto "goto") (statement_identifier "LAB_0004f8f7") (; ";")) (} "}"))) (if_statement "if (local_90[3] == 0) {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }\n                    else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" (if "if") (parenthesized_expression "(local_90[3] == 0)" (( "(") (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" (identifier "local_90") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;\n                    }" ({ "{") (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (if_statement "if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;" (if "if") (parenthesized_expression "((bVar8 & 0x20) != 0)" (( "(") (binary_expression "(bVar8 & 0x20) != 0" (parenthesized_expression "(bVar8 & 0x20)" (( "(") (binary_expression "bVar8 & 0x20" (identifier "bVar8") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ecc9;" (goto "goto") (statement_identifier "LAB_0004ecc9") (; ";"))) (} "}")) (else_clause "else {\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" (else "else") (compound_statement "{\n                      bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    }" ({ "{") (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((char)bVar8 < '\0') {\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }\n                    else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" (if "if") (parenthesized_expression "((char)bVar8 < '\0')" (( "(") (binary_expression "(char)bVar8 < '\0'" (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);\n                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;\n                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;\n                      iVar15 = (*(code *)ppuVar3)();\n                      ppuVar19 = local_e4;\n                      if (iVar15 != 0) goto LAB_0004ed70;\n                    }" ({ "{") (labeled_statement "LAB_0004ed40:\n                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (statement_identifier "LAB_0004ed40") (: ":") (expression_statement "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14)" (identifier "ppuVar3") (= "=") (pointer_expression "*(undefined ***)(*(int *)local_90[2] + 0x14)" (* "*") (cast_expression "(undefined ***)(*(int *)local_90[2] + 0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*(int *)local_90[2] + 0x14)" (( "(") (binary_expression "*(int *)local_90[2] + 0x14" (pointer_expression "*(int *)local_90[2]" (* "*") (cast_expression "(int *)local_90[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_90[2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (if_statement "if (ppuVar3 == ppuVar19) goto LAB_0004e51b;" (if "if") (parenthesized_expression "(ppuVar3 == ppuVar19)" (( "(") (binary_expression "ppuVar3 == ppuVar19" (identifier "ppuVar3") (== "==") (identifier "ppuVar19")) () ")")) (goto_statement "goto LAB_0004e51b;" (goto "goto") (statement_identifier "LAB_0004e51b") (; ";"))) (expression_statement "*(int **)(puVar21 + -0x10) = (int *)local_90[2];" (assignment_expression "*(int **)(puVar21 + -0x10) = (int *)local_90[2]" (pointer_expression "*(int **)(puVar21 + -0x10)" (* "*") (cast_expression "(int **)(puVar21 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (cast_expression "(int *)local_90[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_90[2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ed5c" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ed5c")) (; ";")) (expression_statement "iVar15 = (*(code *)ppuVar3)();" (assignment_expression "iVar15 = (*(code *)ppuVar3)()" (identifier "iVar15") (= "=") (call_expression "(*(code *)ppuVar3)()" (parenthesized_expression "(*(code *)ppuVar3)" (( "(") (pointer_expression "*(code *)ppuVar3" (* "*") (cast_expression "(code *)ppuVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar3"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppuVar19 = local_e4;" (assignment_expression "ppuVar19 = local_e4" (identifier "ppuVar19") (= "=") (identifier "local_e4")) (; ";")) (if_statement "if (iVar15 != 0) goto LAB_0004ed70;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ed70;" (goto "goto") (statement_identifier "LAB_0004ed70") (; ";"))) (} "}")) (else_clause "else {\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" (else "else") (compound_statement "{\nLAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;\nLAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);\n                      if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }\n                      iVar15 = *piVar5;\n                      *(undefined4 **)(puVar21 + -0xc) = local_90;\n                      *(int **)(puVar21 + -0x10) = piVar5;\n                      pcVar2 = *(code **)(iVar15 + 0x1c);\n                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;\n                      cVar7 = (*pcVar2)();\n                      puVar4 = local_90;\n                      if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }\n                    }" ({ "{") (labeled_statement "LAB_0004f8c5:\n                      ppuVar19 = local_94 + 0xbc;" (statement_identifier "LAB_0004f8c5") (: ":") (expression_statement "ppuVar19 = local_94 + 0xbc;" (assignment_expression "ppuVar19 = local_94 + 0xbc" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + 0xbc" (identifier "local_94") (+ "+") (number_literal "0xbc"))) (; ";"))) (labeled_statement "LAB_0004ed70:\n                      piVar5 = *(int **)(*ppuVar19 + 0xc);" (statement_identifier "LAB_0004ed70") (: ":") (expression_statement "piVar5 = *(int **)(*ppuVar19 + 0xc);" (assignment_expression "piVar5 = *(int **)(*ppuVar19 + 0xc)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(*ppuVar19 + 0xc)" (* "*") (cast_expression "(int **)(*ppuVar19 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*ppuVar19 + 0xc)" (( "(") (binary_expression "*ppuVar19 + 0xc" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (if_statement "if (piVar5 == (int *)0x0) {\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;\n                        *(undefined4 *)(puVar21 + -0xc) = 0x69;\n                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;\n                        FUN_0008b620();\n                      }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c759" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c759" (identifier "local_94") (+ "+") (number_literal "-0x3c759"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x69;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x69" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x69")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x501fa;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x501fa" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x501fa")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = *piVar5;" (assignment_expression "iVar15 = *piVar5" (identifier "iVar15") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0xc) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0xc) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(int **)(puVar21 + -0x10) = piVar5;" (assignment_expression "*(int **)(puVar21 + -0x10) = piVar5" (pointer_expression "*(int **)(puVar21 + -0x10)" (* "*") (cast_expression "(int **)(puVar21 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar5")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar15 + 0x1c);" (assignment_expression "pcVar2 = *(code **)(iVar15 + 0x1c)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar15 + 0x1c)" (* "*") (cast_expression "(code **)(iVar15 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ed8c" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ed8c")) (; ";")) (expression_statement "cVar7 = (*pcVar2)();" (assignment_expression "cVar7 = (*pcVar2)()" (identifier "cVar7") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar4 = local_90;" (assignment_expression "puVar4 = local_90" (identifier "puVar4") (= "=") (identifier "local_90")) (; ";")) (if_statement "if (cVar7 == '\0') {\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                        iVar15 = *(int *)(*ppuVar19 + 8);\n                        if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }\n                        pbVar17 = *(byte **)(iVar15 + 0x42e4);\n                        bVar23 = false;\n                        bVar25 = pbVar17 == (byte *)0x0;\n                        if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }\n                        goto LAB_0004eeb3;\n                      }" ({ "{") (expression_statement "iVar15 = *(int *)(*ppuVar19 + 8);" (assignment_expression "iVar15 = *(int *)(*ppuVar19 + 8)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(*ppuVar19 + 8)" (* "*") (cast_expression "(int *)(*ppuVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppuVar19 + 8)" (( "(") (binary_expression "*ppuVar19 + 8" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar15 == 0) {\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;\n                          FUN_0008b620();\n                        }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c69e" (identifier "local_94") (+ "+") (number_literal "-0x3c69e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8d93"))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_00050218" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_00050218" (& "&") (identifier "LAB_00050218"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar17 = *(byte **)(iVar15 + 0x42e4);" (assignment_expression "pbVar17 = *(byte **)(iVar15 + 0x42e4)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(iVar15 + 0x42e4)" (* "*") (cast_expression "(byte **)(iVar15 + 0x42e4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x42e4)" (( "(") (binary_expression "iVar15 + 0x42e4" (identifier "iVar15") (+ "+") (number_literal "0x42e4")) () ")"))))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar25 = pbVar17 == (byte *)0x0" (identifier "bVar25") (= "=") (binary_expression "pbVar17 == (byte *)0x0" (identifier "pbVar17") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar25) {\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }\n                        else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\nLAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }\n                        }" ({ "{") (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) () ")"))))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" (identifier "bVar9") (= "=") (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (labeled_statement "LAB_0004ee51:\n                          if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" (statement_identifier "LAB_0004ee51") (: ":") (if_statement "if ((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" (if "if") (parenthesized_expression "((bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0'))))" (( "(") (binary_expression "(bVar9 == 2) ||\n                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))" (parenthesized_expression "(bVar9 == 2)" (( "(") (binary_expression "bVar9 == 2" (identifier "bVar9") (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')))" (( "(") (parenthesized_expression "(*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0'))" (( "(") (binary_expression "*(char *)(iVar15 + 0x1a25) == '\0' ||\n                              (*(char *)(iVar15 + 0x4eb5) != '\0')" (binary_expression "*(char *)(iVar15 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar15 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar15 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1a25)" (( "(") (binary_expression "iVar15 + 0x1a25" (identifier "iVar15") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(*(char *)(iVar15 + 0x4eb5) != '\0')" (( "(") (binary_expression "*(char *)(iVar15 + 0x4eb5) != '\0'" (pointer_expression "*(char *)(iVar15 + 0x4eb5)" (* "*") (cast_expression "(char *)(iVar15 + 0x4eb5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x4eb5)" (( "(") (binary_expression "iVar15 + 0x4eb5" (identifier "iVar15") (+ "+") (number_literal "0x4eb5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;\n                            *(uint *)(puVar21 + -0x14) = local_b8;\n                            *(int *)(puVar21 + -0x18) = local_a8;\n                            *(undefined4 **)(puVar21 + -0x1c) = param_2;\n                            *(undefined4 **)(puVar21 + -0x20) = local_90;\n                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;\n                            FUN_000833b0();\n                            bVar8 = *(byte *)((int)puVar4 + 0x2b);\n                            goto LAB_0004e538;\n                          }" ({ "{") (labeled_statement "LAB_0004ee67:\n                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;" (statement_identifier "LAB_0004ee67") (: ":") (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (>> ">>") (number_literal "0x1f"))) (; ";"))) (expression_statement "*(uint *)(puVar21 + -0x14) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x14) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x14)" (* "*") (cast_expression "(uint *)(puVar21 + -0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x18) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x18) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x18)" (* "*") (cast_expression "(int *)(puVar21 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x1c) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x1c) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x1c)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4ee8e" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x4ee8e")) (; ";")) (expression_statement "FUN_000833b0();" (call_expression "FUN_000833b0()" (identifier "FUN_000833b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar8 = *(byte *)((int)puVar4 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)puVar4 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)puVar4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)puVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + 0x2b)" (( "(") (binary_expression "(int)puVar4 + 0x2b" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (goto_statement "goto LAB_0004e538;" (goto "goto") (statement_identifier "LAB_0004e538") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" (else "else") (compound_statement "{\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);\n                          bVar24 = false;\n                          bVar23 = (!bVar23 && !bVar25) == bVar23;\n                          if (bVar23) goto LAB_0004eea0;\n                          iVar16 = 0xb;\n                          pbVar14 = pbVar17;\n                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);\n                          bVar25 = false;\n                          bVar23 = (!bVar24 && !bVar23) == bVar24;\n                          if (bVar23) goto LAB_0004ee67;\n                          iVar16 = 0x17;\n                          pbVar14 = pbVar17;\n                          ppuVar19 = local_94 + -0x3e3e4;\n                          do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);\n                          local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));\n                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;\n                          bVar23 = (!bVar25 && !bVar23) == bVar25;\n                          if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }\n                        }" ({ "{") (expression_statement "iVar16 = 0xb;" (assignment_expression "iVar16 = 0xb" (identifier "iVar16") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" (identifier "pbVar14") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar22 = (byte *)((int)local_94 + -0xf8fa6);" (assignment_expression "pbVar22 = (byte *)((int)local_94 + -0xf8fa6)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf8fa6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf8fa6)" (( "(") (binary_expression "(int)local_94 + -0xf8fa6" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8fa6")) () ")")))) (; ";")) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar25);" (do "do") (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar23 = *pbVar14 < *pbVar22;\n                            bVar25 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar14 < *pbVar22;" (assignment_expression "bVar23 = *pbVar14 < *pbVar22" (identifier "bVar23") (= "=") (binary_expression "*pbVar14 < *pbVar22" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "bVar25 = *pbVar14 == *pbVar22;" (assignment_expression "bVar25 = *pbVar14 == *pbVar22" (identifier "bVar25") (= "=") (binary_expression "*pbVar14 == *pbVar22" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" (identifier "bVar23") (= "=") (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (bVar23) goto LAB_0004eea0;" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (goto_statement "goto LAB_0004eea0;" (goto "goto") (statement_identifier "LAB_0004eea0") (; ";"))) (expression_statement "iVar16 = 0xb;" (assignment_expression "iVar16 = 0xb" (identifier "iVar16") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" (identifier "pbVar14") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar22 = (byte *)((int)local_94 + -0xf8f9b);" (assignment_expression "pbVar22 = (byte *)((int)local_94 + -0xf8f9b)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf8f9b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf8f9b)" (( "(") (binary_expression "(int)local_94 + -0xf8f9b" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8f9b")) () ")")))) (; ";")) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          } while (bVar23);" (do "do") (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar24 = *pbVar14 < *pbVar22;\n                            bVar23 = *pbVar14 == *pbVar22;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                          }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar14 < *pbVar22;" (assignment_expression "bVar24 = *pbVar14 < *pbVar22" (identifier "bVar24") (= "=") (binary_expression "*pbVar14 < *pbVar22" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "bVar23 = *pbVar14 == *pbVar22;" (assignment_expression "bVar23 = *pbVar14 == *pbVar22" (identifier "bVar23") (= "=") (binary_expression "*pbVar14 == *pbVar22" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar24 && !bVar23) == bVar24;" (assignment_expression "bVar23 = (!bVar24 && !bVar23) == bVar24" (identifier "bVar23") (= "=") (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" (( "(") (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (bVar23) goto LAB_0004ee67;" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (goto_statement "goto LAB_0004ee67;" (goto "goto") (statement_identifier "LAB_0004ee67") (; ";"))) (expression_statement "iVar16 = 0x17;" (assignment_expression "iVar16 = 0x17" (identifier "iVar16") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" (identifier "pbVar14") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "ppuVar19 = local_94 + -0x3e3e4;" (assignment_expression "ppuVar19 = local_94 + -0x3e3e4" (identifier "ppuVar19") (= "=") (binary_expression "local_94 + -0x3e3e4" (identifier "local_94") (+ "+") (number_literal "-0x3e3e4"))) (; ";")) (do_statement "do {\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          } while (bVar23);" (do "do") (compound_statement "{\n                            if (iVar16 == 0) break;\n                            iVar16 = iVar16 + -1;\n                            bVar25 = *pbVar14 < *(byte *)ppuVar19;\n                            bVar23 = *pbVar14 == *(byte *)ppuVar19;\n                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);\n                          }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar14 < *(byte *)ppuVar19;" (assignment_expression "bVar25 = *pbVar14 < *(byte *)ppuVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar14 < *(byte *)ppuVar19" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "bVar23 = *pbVar14 == *(byte *)ppuVar19;" (assignment_expression "bVar23 = *pbVar14 == *(byte *)ppuVar19" (identifier "bVar23") (= "=") (binary_expression "*pbVar14 == *(byte *)ppuVar19" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar19 + (uint)bVar26 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar26 * -2" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,\n                                                       *(byte *)((int)local_90 + 0x29))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) () ")"))))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" (identifier "bVar9") (= "=") (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" (identifier "bVar23") (= "=") (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if ((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }" (if "if") (parenthesized_expression "((!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23))" (( "(") (binary_expression "(!bVar23) ||\n                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)" (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (|| "||") (parenthesized_expression "(bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)" (( "(") (comma_expression "bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23" (assignment_expression "bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0" (identifier "bVar23") (= "=") (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 1) == 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 1)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2b) & 1" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) (, ",") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")"))) () ")")) (compound_statement "{\n                            bVar25 = false;\n                            iVar16 = 0x16;\n                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);\n                            do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);\n                            if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;\n                          }" ({ "{") (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "iVar16 = 0x16;" (assignment_expression "iVar16 = 0x16" (identifier "iVar16") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf8f79);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf8f79)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf8f79)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf8f79)" (( "(") (binary_expression "(int)local_94 + -0xf8f79" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8f79")) () ")")))) (; ";")) (do_statement "do {\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            } while (bVar23);" (do "do") (compound_statement "{\n                              if (iVar16 == 0) break;\n                              iVar16 = iVar16 + -1;\n                              bVar25 = *pbVar17 < *pbVar14;\n                              bVar23 = *pbVar17 == *pbVar14;\n                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n                            }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar14;" (assignment_expression "bVar25 = *pbVar17 < *pbVar14" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar14;" (assignment_expression "bVar23 = *pbVar17 == *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if (((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;" (if "if") (parenthesized_expression "(((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0'))" (( "(") (binary_expression "((!bVar25 && !bVar23) != bVar25) ||\n                               (*(char *)((int)local_90 + 0x2a) < '\0')" (parenthesized_expression "((!bVar25 && !bVar23) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar23) != bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)local_90 + 0x2a) < '\0')" (( "(") (binary_expression "*(char *)((int)local_90 + 0x2a) < '\0'" (pointer_expression "*(char *)((int)local_90 + 0x2a)" (* "*") (cast_expression "(char *)((int)local_90 + 0x2a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2a)" (( "(") (binary_expression "(int)local_90 + 0x2a" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2a")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0004ee51;" (goto "goto") (statement_identifier "LAB_0004ee51") (; ";"))) (} "}"))) (} "}")))) (goto_statement "goto LAB_0004eeb3;" (goto "goto") (statement_identifier "LAB_0004eeb3") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0004eea0:\n                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (statement_identifier "LAB_0004eea0") (: ":") (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,*(byte *)((int)local_90 + 0x29))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) () ")"))))) (; ";"))) (expression_statement "bVar9 = *(byte *)((int)local_90 + 0x29) & 3;" (assignment_expression "bVar9 = *(byte *)((int)local_90 + 0x29) & 3" (identifier "bVar9") (= "=") (binary_expression "*(byte *)((int)local_90 + 0x29) & 3" (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (goto_statement "goto LAB_0004eeb3;" (goto "goto") (statement_identifier "LAB_0004eeb3") (; ";")) (} "}"))) (labeled_statement "LAB_0004e51b:\n                  bVar8 = *(byte *)((int)local_90 + 0x29);" (statement_identifier "LAB_0004e51b") (: ":") (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x29)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")"))))) (; ";"))) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8)" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,bVar8)" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,bVar8)" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar8") () ")"))))) (; ";")) (expression_statement "bVar9 = bVar8 & 3;" (assignment_expression "bVar9 = bVar8 & 3" (identifier "bVar9") (= "=") (binary_expression "bVar8 & 3" (identifier "bVar8") (& "&") (number_literal "3"))) (; ";")) (if_statement "if ((bVar8 & 3) == 0) goto LAB_0004e534;" (if "if") (parenthesized_expression "((bVar8 & 3) == 0)" (( "(") (binary_expression "(bVar8 & 3) == 0" (parenthesized_expression "(bVar8 & 3)" (( "(") (binary_expression "bVar8 & 3" (identifier "bVar8") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e534;" (goto "goto") (statement_identifier "LAB_0004e534") (; ";"))) (expression_statement "uVar10 = uVar18 & 7;" (assignment_expression "uVar10 = uVar18 & 7" (identifier "uVar10") (= "=") (binary_expression "uVar18 & 7" (identifier "uVar18") (& "&") (number_literal "7"))) (; ";")) (} "}")))) (if_statement "if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }" (if "if") (parenthesized_expression "((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(local_90[3] == 0)" (( "(") (binary_expression "local_90[3] == 0" (subscript_expression "local_90[3]" (identifier "local_90") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)local_90 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)local_90 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;\nLAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }\n                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }\nLAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }\n                  uVar13 = *local_90;\n                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;\n                  uVar12 = gettext();\n                  *(undefined4 *)(puVar21 + -8) = uVar13;\n                  *(undefined4 *)(puVar21 + -0xc) = uVar11;\n                  *(undefined4 *)(puVar21 + -0x10) = uVar12;\n                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;\n                  FUN_000828d0();\n                  goto LAB_0004efaf;\n                }" ({ "{") (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     ) goto LAB_0004ec9c;" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)\n                     )" (( "(") (binary_expression "(*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)" (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(local_90 + 10) >> 4 == 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(local_90 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" (* "*") (cast_expression "(byte *)(local_90 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0xb)" (( "(") (binary_expression "local_90 + 0xb" (identifier "local_90") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004ec9c;" (goto "goto") (statement_identifier "LAB_0004ec9c") (; ";"))) (labeled_statement "LAB_0004ef17:\n                  if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" (statement_identifier "LAB_0004ef17") (: ":") (if_statement "if (*(int *)(*local_e0 + 8) == 0) {\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" (if "if") (parenthesized_expression "(*(int *)(*local_e0 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_e0 + 8) == 0" (pointer_expression "*(int *)(*local_e0 + 8)" (* "*") (cast_expression "(int *)(*local_e0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_e0 + 8)" (( "(") (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" (* "*") (identifier "local_e0")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined ***)(puVar21 + -4) = local_e0;\n                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;\n                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;\n                    \n                    \n                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;\n                    FUN_0008b620();\n                  }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -4) = local_e0;" (assignment_expression "*(undefined ***)(puVar21 + -4) = local_e0" (pointer_expression "*(undefined ***)(puVar21 + -4)" (* "*") (cast_expression "(undefined ***)(puVar21 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c69e" (identifier "local_94") (+ "+") (number_literal "-0x3c69e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf8d93" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf8d93"))) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x14) = &UNK_000500bd;" (assignment_expression "*(undefined **)(puVar21 + -0x14) = &UNK_000500bd" (pointer_expression "*(undefined **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_000500bd" (& "&") (identifier "UNK_000500bd"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" (* "*") (cast_expression "(char *)(*(int *)(*local_e0 + 8) + 0x49b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_e0 + 8) + 0x49b1)" (( "(") (binary_expression "*(int *)(*local_e0 + 8) + 0x49b1" (pointer_expression "*(int *)(*local_e0 + 8)" (* "*") (cast_expression "(int *)(*local_e0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_e0 + 8)" (( "(") (binary_expression "*local_e0 + 8" (pointer_expression "*local_e0" (* "*") (identifier "local_e0")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x49b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    if ((char)uVar10 != '\0') goto LAB_0004efaf;\n                    goto LAB_0004ec9c;\n                  }" ({ "{") (if_statement "if ((char)uVar10 != '\0') goto LAB_0004efaf;" (if "if") (parenthesized_expression "((char)uVar10 != '\0')" (( "(") (binary_expression "(char)uVar10 != '\0'" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004efaf;" (goto "goto") (statement_identifier "LAB_0004efaf") (; ";"))) (goto_statement "goto LAB_0004ec9c;" (goto "goto") (statement_identifier "LAB_0004ec9c") (; ";")) (} "}"))) (labeled_statement "LAB_0004ef58:\n                  if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" (statement_identifier "LAB_0004ef58") (: ":") (if_statement "if (bVar9 == 2) {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }\n                  else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" (if "if") (parenthesized_expression "(bVar9 == 2)" (( "(") (binary_expression "bVar9 == 2" (identifier "bVar9") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;\n                    uVar11 = gettext();\n                  }" ({ "{") (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3a5d" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3a5d"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4fcf5" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4fcf5")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" (else "else") (if_statement "if (bVar9 < 3) {\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }\n                  else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" (if "if") (parenthesized_expression "(bVar9 < 3)" (( "(") (binary_expression "bVar9 < 3" (identifier "bVar9") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n                    if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;\n                    uVar11 = gettext();\n                  }" ({ "{") (if_statement "if (bVar9 != 1) {\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }" (if "if") (parenthesized_expression "(bVar9 != 1)" (( "(") (binary_expression "bVar9 != 1" (identifier "bVar9") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                      *(uint *)(puVar21 + -4) = uVar10;\n                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;\n                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;\n                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;\n                    \n                    \n                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;\n                      FUN_0008b620();\n                    }" ({ "{") (expression_statement "*(uint *)(puVar21 + -4) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -4) = uVar10" (pointer_expression "*(uint *)(puVar21 + -4)" (* "*") (cast_expression "(uint *)(puVar21 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;" (assignment_expression "*(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e" (pointer_expression "*(undefined ***)(puVar21 + -8)" (* "*") (cast_expression "(undefined ***)(puVar21 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_94 + -0x3c75e" (identifier "local_94") (+ "+") (number_literal "-0x3c75e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = 0xa4;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = 0xa4" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xa4")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3b27" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3b27"))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_0005025b" (& "&") (identifier "LAB_0005025b"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3a66" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3a66"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4efdd;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4efdd" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4efdd")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" (else "else") (compound_statement "{\n                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;\n                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;\n                    uVar11 = gettext();\n                  }" ({ "{") (expression_statement "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;" (assignment_expression "*(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56" (pointer_expression "*(int *)(puVar21 + -0x10)" (* "*") (cast_expression "(int *)(puVar21 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_94 + -0xf3a56" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3a56"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ef77;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ef77" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ef77")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))))))) (expression_statement "uVar13 = *local_90;" (assignment_expression "uVar13 = *local_90" (identifier "uVar13") (= "=") (pointer_expression "*local_90" (* "*") (identifier "local_90"))) (; ";")) (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cd73" (identifier "local_94") (+ "+") (number_literal "-0x3cd73"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ef9b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ef9b")) (; ";")) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" (identifier "uVar12") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -8) = uVar13;" (assignment_expression "*(undefined4 *)(puVar21 + -8) = uVar13" (pointer_expression "*(undefined4 *)(puVar21 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4efac;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4efac" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4efac")) (; ";")) (expression_statement "FUN_000828d0();" (call_expression "FUN_000828d0()" (identifier "FUN_000828d0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0004efaf;" (goto "goto") (statement_identifier "LAB_0004efaf") (; ";")) (} "}"))) (labeled_statement "LAB_0004ec9c:\n                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;" (statement_identifier "LAB_0004ec9c") (: ":") (if_statement "if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;" (if "if") (parenthesized_expression "((*(byte *)(local_90[2] + 0x2c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(local_90[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(local_90[2] + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(local_90[2] + 0x2c) & 1" (pointer_expression "*(byte *)(local_90[2] + 0x2c)" (* "*") (cast_expression "(byte *)(local_90[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90[2] + 0x2c)" (( "(") (binary_expression "local_90[2] + 0x2c" (subscript_expression "local_90[2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ef58;" (goto "goto") (statement_identifier "LAB_0004ef58") (; ";")))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" (else "else") (compound_statement "{\n                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;\n                bVar8 = *(byte *)((int)local_90 + 0x29);\n                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);\n                bVar9 = bVar8 & 3;\n                if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }\nLAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }\nLAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);\n              }" ({ "{") (if_statement "if ((char)uVar10 == '\x04') goto LAB_0004ecc9;" (if "if") (parenthesized_expression "((char)uVar10 == '\x04')" (( "(") (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (goto_statement "goto LAB_0004ecc9;" (goto "goto") (statement_identifier "LAB_0004ecc9") (; ";"))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x29);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x29)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x29)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x29)" (( "(") (binary_expression "(int)local_90 + 0x29" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x29")) () ")"))))) (; ";")) (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8)" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,bVar8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,bVar8)" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,bVar8)" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar8") () ")"))))) (; ";")) (expression_statement "bVar9 = bVar8 & 3;" (assignment_expression "bVar9 = bVar8 & 3" (identifier "bVar9") (= "=") (binary_expression "bVar8 & 3" (identifier "bVar8") (& "&") (number_literal "3"))) (; ";")) (if_statement "if ((bVar8 & 3) == 0) {\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }" (if "if") (parenthesized_expression "((bVar8 & 3) == 0)" (( "(") (binary_expression "(bVar8 & 3) == 0" (parenthesized_expression "(bVar8 & 3)" (( "(") (binary_expression "bVar8 & 3" (identifier "bVar8") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);\n                  goto LAB_0004e538;\n                }" ({ "{") (labeled_statement "LAB_0004e534:\n                  bVar8 = *(byte *)((int)local_90 + 0x2b);" (statement_identifier "LAB_0004e534") (: ":") (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0004e538;" (goto "goto") (statement_identifier "LAB_0004e538") (; ";")) (} "}"))) (labeled_statement "LAB_0004eee0:\n                if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" (statement_identifier "LAB_0004eee0") (: ":") (if_statement "if ((char)uVar10 == '\x04') {\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" (if "if") (parenthesized_expression "((char)uVar10 == '\x04')" (( "(") (binary_expression "(char)uVar10 == '\x04'" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));\n                  if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }\n                }" ({ "{") (expression_statement "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));" (assignment_expression "local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (identifier "local_9c") (= "=") (cast_expression "(byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10))" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,*(byte *)(local_90 + 10))" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) () ")"))))) (; ";")) (if_statement "if (*(byte *)(local_90 + 10) >> 4 != 2) {\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }" (if "if") (parenthesized_expression "(*(byte *)(local_90 + 10) >> 4 != 2)" (( "(") (binary_expression "*(byte *)(local_90 + 10) >> 4 != 2" (binary_expression "*(byte *)(local_90 + 10) >> 4" (pointer_expression "*(byte *)(local_90 + 10)" (* "*") (cast_expression "(byte *)(local_90 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 10)" (( "(") (binary_expression "local_90 + 10" (identifier "local_90") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;\n                    bVar8 = *(byte *)((int)local_90 + 0x2b);\n                    goto LAB_0004e538;\n                  }" ({ "{") (if_statement "if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 0xb) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(local_90 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(local_90 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(local_90 + 0xb) & 2" (pointer_expression "*(byte *)(local_90 + 0xb)" (* "*") (cast_expression "(byte *)(local_90 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0xb)" (( "(") (binary_expression "local_90 + 0xb" (identifier "local_90") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ef17;" (goto "goto") (statement_identifier "LAB_0004ef17") (; ";"))) (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (goto_statement "goto LAB_0004e538;" (goto "goto") (statement_identifier "LAB_0004e538") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0004efaf:\n                bVar8 = *(byte *)((int)local_90 + 0x2b);" (statement_identifier "LAB_0004efaf") (: ":") (expression_statement "bVar8 = *(byte *)((int)local_90 + 0x2b);" (assignment_expression "bVar8 = *(byte *)((int)local_90 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)local_90 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_90 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 0x2b)" (( "(") (binary_expression "(int)local_90 + 0x2b" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";"))) (} "}")))) (labeled_statement "LAB_0004e538:\n              if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" (statement_identifier "LAB_0004e538") (: ":") (if_statement "if ((bVar8 & 4) != 0) {\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" (if "if") (parenthesized_expression "((bVar8 & 4) != 0)" (( "(") (binary_expression "(bVar8 & 4) != 0" (parenthesized_expression "(bVar8 & 4)" (( "(") (binary_expression "bVar8 & 4" (identifier "bVar8") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;\n                *(uint *)(puVar21 + -0x10) = local_b8;\n                *(int *)(puVar21 + -0x14) = local_a8;\n                puVar4 = (undefined4 *)*param_2;\n                *(undefined4 **)(puVar21 + -0x18) = param_2;\n                *(undefined4 **)(puVar21 + -0x1c) = local_90;\n                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;\n                    \n                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;\n                local_90 = puVar4;\n                FUN_001524d0();\n              }" ({ "{") (expression_statement "*(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;" (assignment_expression "*(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f" (pointer_expression "*(int *)(puVar21 + -0xc)" (* "*") (cast_expression "(int *)(puVar21 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "(int)local_b8 >> 0x1f" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x10) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -0x10) = local_b8" (pointer_expression "*(uint *)(puVar21 + -0x10)" (* "*") (cast_expression "(uint *)(puVar21 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x14) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x14) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x14)" (* "*") (cast_expression "(int *)(puVar21 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "puVar4 = (undefined4 *)*param_2;" (assignment_expression "puVar4 = (undefined4 *)*param_2" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*param_2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x18) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x18) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x18)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x1c) = local_90;" (assignment_expression "*(undefined4 **)(puVar21 + -0x1c) = local_90" (pointer_expression "*(undefined4 **)(puVar21 + -0x1c)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (binary_expression "puVar4 + 0x40" (identifier "puVar4") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4ec77;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4ec77" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x4ec77")) (; ";")) (expression_statement "local_90 = puVar4;" (assignment_expression "local_90 = puVar4" (identifier "local_90") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "FUN_001524d0();" (call_expression "FUN_001524d0()" (identifier "FUN_001524d0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" (else "else") (compound_statement "{\nLAB_0004f130:\n            local_78 = param_4;\n            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }\n            bVar23 = false;\n            bVar25 = local_90 == (undefined4 *)0x0;\n            if (bVar25) goto LAB_0004f16b;\n            iVar15 = 0x10;\n            pbVar17 = (byte *)*local_90;\n            pbVar14 = (byte *)((int)local_94 + -0xf3c55);\n            do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;\n            local_74 = '\0';\n          }" ({ "{") (labeled_statement "LAB_0004f130:\n            local_78 = param_4;" (statement_identifier "LAB_0004f130") (: ":") (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" (identifier "local_78") (= "=") (identifier "param_4")) (; ";"))) (if_statement "if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }" (if "if") (parenthesized_expression "(((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b))" (( "(") (binary_expression "((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)" (parenthesized_expression "((local_b0 - 2 & 0xfffffffd) != 0)" (( "(") (binary_expression "(local_b0 - 2 & 0xfffffffd) != 0" (parenthesized_expression "(local_b0 - 2 & 0xfffffffd)" (( "(") (binary_expression "local_b0 - 2 & 0xfffffffd" (binary_expression "local_b0 - 2" (identifier "local_b0") (- "-") (number_literal "2")) (& "&") (number_literal "0xfffffffd")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_b0 != 0x2b)" (( "(") (binary_expression "local_b0 != 0x2b" (identifier "local_b0") (!= "!=") (number_literal "0x2b")) () ")"))) () ")")) (compound_statement "{\nLAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;\n              uVar11 = gettext();\n              *(undefined4 *)(puVar21 + -0x10) = uVar11;\n              uVar10 = *local_78;\n              *(undefined4 *)(puVar21 + -0x14) = 0;\n              *(uint *)(puVar21 + -0x18) = uVar10;\n              *(int *)(puVar21 + -0x1c) = local_a8;\n              *(undefined4 **)(puVar21 + -0x20) = param_2;\n                    \n              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;\n              FUN_00082e10();\n              local_74 = '\0';\n              goto LAB_0004e30b;\n            }" ({ "{") (labeled_statement "LAB_0004f16b:\n              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (statement_identifier "LAB_0004f16b") (: ":") (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cdbe" (identifier "local_94") (+ "+") (number_literal "-0x3cdbe"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f182;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f182" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f182")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar10 = *local_78;" (assignment_expression "uVar10 = *local_78" (identifier "uVar10") (= "=") (pointer_expression "*local_78" (* "*") (identifier "local_78"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x18) = uVar10;" (assignment_expression "*(uint *)(puVar21 + -0x18) = uVar10" (pointer_expression "*(uint *)(puVar21 + -0x18)" (* "*") (cast_expression "(uint *)(puVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1c) = local_a8;" (assignment_expression "*(int *)(puVar21 + -0x1c) = local_a8" (pointer_expression "*(int *)(puVar21 + -0x1c)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x24) = 0x4f19c;" (assignment_expression "*(undefined4 *)(puVar21 + -0x24) = 0x4f19c" (pointer_expression "*(undefined4 *)(puVar21 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x4f19c")) (; ";")) (expression_statement "FUN_00082e10();" (call_expression "FUN_00082e10()" (identifier "FUN_00082e10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" (identifier "local_74") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_0004e30b;" (goto "goto") (statement_identifier "LAB_0004e30b") (; ";")) (} "}"))) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = local_90 == (undefined4 *)0x0;" (assignment_expression "bVar25 = local_90 == (undefined4 *)0x0" (identifier "bVar25") (= "=") (binary_expression "local_90 == (undefined4 *)0x0" (identifier "local_90") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar25) goto LAB_0004f16b;" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (goto_statement "goto LAB_0004f16b;" (goto "goto") (statement_identifier "LAB_0004f16b") (; ";"))) (expression_statement "iVar15 = 0x10;" (assignment_expression "iVar15 = 0x10" (identifier "iVar15") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar17 = (byte *)*local_90;" (assignment_expression "pbVar17 = (byte *)*local_90" (identifier "pbVar17") (= "=") (cast_expression "(byte *)*local_90" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_90" (* "*") (identifier "local_90")))) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_94 + -0xf3c55);" (assignment_expression "pbVar14 = (byte *)((int)local_94 + -0xf3c55)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_94 + -0xf3c55)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + -0xf3c55)" (( "(") (binary_expression "(int)local_94 + -0xf3c55" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "-0xf3c55")) () ")")))) (; ";")) (do_statement "do {\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" (do "do") (compound_statement "{\n              if (iVar15 == 0) break;\n              iVar15 = iVar15 + -1;\n              bVar23 = *pbVar17 < *pbVar14;\n              bVar25 = *pbVar17 == *pbVar14;\n              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar17 < *pbVar14;" (assignment_expression "bVar23 = *pbVar17 < *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 < *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar25 = *pbVar17 == *pbVar14;" (assignment_expression "bVar25 = *pbVar17 == *pbVar14" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 == *pbVar14" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;" (if "if") (parenthesized_expression "((!bVar23 && !bVar25) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar25) != bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_0004f16b;" (goto "goto") (statement_identifier "LAB_0004f16b") (; ";"))) (expression_statement "local_74 = '\0';" (assignment_expression "local_74 = '\0'" (identifier "local_74") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_c4;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_c4" (pointer_expression "*(byte ***)(puVar21 + -0x10)" (* "*") (cast_expression "(byte ***)(puVar21 + -0x10)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e54f;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e54f" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4e54f")) (; ";")) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" (identifier "FUN_00056330") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(byte ***)(puVar21 + -0x10) = local_ac;" (assignment_expression "*(byte ***)(puVar21 + -0x10) = local_ac" (pointer_expression "*(byte ***)(puVar21 + -0x10)" (* "*") (cast_expression "(byte ***)(puVar21 + -0x10)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_ac")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4e55b;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4e55b" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4e55b")) (; ";")) (expression_statement "FUN_00056330();" (call_expression "FUN_00056330()" (identifier "FUN_00056330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" (else "else") (compound_statement "{\n        *(uint *)(puVar21 + -4) = local_b8;\n        *(undefined4 *)(puVar21 + -8) = param_2[6];\n        *(undefined4 *)(puVar21 + -0xc) = param_2[2];\n        *(undefined4 *)(puVar21 + -0x10) = param_6;\n                    \n        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;\n        local_b8 = FUN_000efd20();\n        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;\n      }" ({ "{") (expression_statement "*(uint *)(puVar21 + -4) = local_b8;" (assignment_expression "*(uint *)(puVar21 + -4) = local_b8" (pointer_expression "*(uint *)(puVar21 + -4)" (* "*") (cast_expression "(uint *)(puVar21 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -8) = param_2[6];" (assignment_expression "*(undefined4 *)(puVar21 + -8) = param_2[6]" (pointer_expression "*(undefined4 *)(puVar21 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = param_2[2];" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = param_2[2]" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = param_6;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = param_6" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4f6e0" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4f6e0")) (; ";")) (expression_statement "local_b8 = FUN_000efd20();" (assignment_expression "local_b8 = FUN_000efd20()" (identifier "local_b8") (= "=") (call_expression "FUN_000efd20()" (identifier "FUN_000efd20") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_b8 != 0xffffffff) goto LAB_0004e1d8;" (if "if") (parenthesized_expression "(local_b8 != 0xffffffff)" (( "(") (binary_expression "local_b8 != 0xffffffff" (identifier "local_b8") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_0004e1d8;" (goto "goto") (statement_identifier "LAB_0004e1d8") (; ";"))) (} "}")))) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 1" (identifier "local_a8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" (identifier "param_4") (= "=") (binary_expression "param_4 + 2" (identifier "param_4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar6 = puVar21;" (assignment_expression "puVar6 = puVar21" (identifier "puVar6") (= "=") (identifier "puVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_5 != local_a8)" (( "(") (binary_expression "param_5 != local_a8" (identifier "param_5") (!= "!=") (identifier "local_a8")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_74 != '\0') {\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }" (if "if") (parenthesized_expression "(local_74 != '\0')" (( "(") (binary_expression "local_74 != '\0'" (identifier "local_74") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;\n    uVar11 = gettext();\n    *(undefined4 *)(puVar21 + -0x10) = uVar11;\n    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;\n    FUN_000828d0();\n    return;\n  }" ({ "{") (expression_statement "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;" (assignment_expression "*(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe" (pointer_expression "*(undefined ***)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_94 + -0x3cdbe" (identifier "local_94") (+ "+") (number_literal "-0x3cdbe"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ff97;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ff97" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ff97")) (; ";")) (expression_statement "uVar11 = gettext();" (assignment_expression "uVar11 = gettext()" (identifier "uVar11") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x10) = uVar11;" (assignment_expression "*(undefined4 *)(puVar21 + -0x10) = uVar11" (pointer_expression "*(undefined4 *)(puVar21 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;" (assignment_expression "*(undefined4 *)(puVar21 + -0x14) = 0x4ff9f" (pointer_expression "*(undefined4 *)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x4ff9f")) (; ";")) (expression_statement "FUN_000828d0();" (call_expression "FUN_000828d0()" (identifier "FUN_000828d0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Removing unreachable block (ram,0x0004f130) */
/* WARNING: Removing unreachable block (ram,0x0004f13e) */
/* WARNING: Removing unreachable block (ram,0x0004f143) */
/* WARNING: Removing unreachable block (ram,0x0004f14d) */
/* WARNING: Removing unreachable block (ram,0x0004f160) */
/* WARNING: Removing unreachable block (ram,0x0004f162) */
/* WARNING: Removing unreachable block (ram,0x0004f16b) */
/* WARNING: Removing unreachable block (ram,0x0004f1b0) */
/* WARNING: Removing unreachable block (ram,0x0004ff80) */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void relocate_section(Target_i386 * this, Relocate_info<32,_false> *
   relinfo, uint sh_type, uchar * prelocs, size_t reloc_count, Output_section * output_section, bool
   needs_special_offset_handling, uchar * view, Elf_Addr address, section_size_type view_size,
   Reloc_symbol_changes * reloc_symbol_changes) */

void __thiscall
anon_unknown.dwarf_217836::Target_i386::relocate_section
          (Target_i386 *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          uchar *view,Elf_Addr address,section_size_type view_size,
          Reloc_symbol_changes *reloc_symbol_changes)

{
  byte bVar1;
  _func_int_varargs **pp_Var2;
  _func_int_varargs *p_Var3;
  undefined **ppuVar4;
  Elf_Addr EVar5;
  Symbol_table *pSVar6;
  int *piVar7;
  code *pcVar8;
  Output_data_plt_i386 *pOVar9;
  Sized_relobj_file<32,_false> *pSVar10;
  pointer pSVar11;
  pointer ppSVar12;
  pointer ppOVar13;
  pointer pcVar14;
  size_type sVar15;
  Value *pVVar16;
  undefined1 *puVar17;
  bool bVar18;
  byte bVar19;
  char cVar20;
  byte bVar21;
  uint uVar22;
  undefined4 uVar23;
  Value VVar24;
  undefined4 uVar25;
  Address AVar26;
  Relobj *pRVar27;
  int iVar28;
  char *pcVar29;
  int iVar30;
  uint uVar31;
  undefined **ppuVar32;
  undefined4 *puVar33;
  undefined4 *puVar34;
  byte *pbVar35;
  byte *pbVar36;
  byte *pbVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  uint64_t uVar41;
  size_t asStack_114 [5];
  uint local_100;
  undefined1 auStack_ec [8];
  undefined **local_e4;
  undefined **local_e0;
  uint local_dc;
  char local_d1;
  int local_c8;
  Symbol_value<32> *local_c4;
  Sized_relobj_file<32,_false> *local_c0;
  Sized_relobj_file<32,_false> *local_bc;
  uint local_b8;
  int local_b4;
  uint local_b0;
  Symbol_value<32> *local_ac;
  size_t local_a8;
  Value *local_a4;
  Symbol_value<32> *local_a0;
  Symbol_value<32> *local_9c;
  int local_98;
  undefined **local_94;
  Symbol_table *local_90;
  bool is_ordinary;
  bool is_global;
  Elf_Addr value;
  uint key_symndx;
  Rel<32,_false> rel;
  Relocate relocate;
  Symbol_value<32> symval;
  Symbol_value<32> symval2;
  Symbol_value<32> symval_1;
  bool found;
  undefined1 local_2c [28];
  
  bVar40 = 0;
  local_94 = &_GLOBAL_OFFSET_TABLE_;
  local_d1 = needs_special_offset_handling;
  if (sh_type != 9) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/i386.cc",0xe64,"relocate_section");
  }
  local_c0 = relinfo->object;
  pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;
  p_Var3 = pp_Var2[0x23];
  if (p_Var3 == gold::Relobj::local_symbol_count) {
                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */
    local_dc = (*pp_Var2[0x2f])(local_c0);
  }
  else {
                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */
    local_dc = (*p_Var3)(local_c0);
  }
  puVar34 = (undefined4 *)auStack_ec;
  local_b4 = 0;
  local_a8 = 0;
  local_e0 = local_94 + 0xbc;
  local_e4 = local_94 + 0xbc;
  if (reloc_count != 0) {
    do {
      local_b8 = *(uint *)prelocs;
      if (local_d1 == '\0') {
LAB_0004e1d8:
        symval.output_symtab_index_ = 0;
        symval.output_dynsym_index_ = 0xffffffff;
        uVar22 = *(uint *)(prelocs + 4);
        symval._8_4_ = 0x80000000;
        symval.u_.value = 0;
        local_a4 = (Value *)(uVar22 >> 8);
        if (local_a4 < local_dc) {
          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&
             (local_90 = (Symbol_table *)
                         (reloc_symbol_changes->vec_).
                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) {
LAB_0004e238:
            uVar31 = local_90->output_count_;
            uVar22 = uVar31 - 1;
            if (0xfffffffd < uVar22) goto LAB_0004e24d;
LAB_0004f6b0:
            if (uVar22 == 0xfffffffd) {
              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;
              *(undefined4 *)((int)puVar34 + -0xc) = 0x70d;
              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */
              *(undefined4 *)((int)puVar34 + -0x14) = 0x501b9;
              gold::do_gold_unreachable
                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                         *(char **)((int)puVar34 + -8));
            }
            symval.output_symtab_index_ = uVar31;
            goto LAB_0004e254;
          }
          pSVar11 = (local_c0->local_values_).
                    super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                    ._M_impl._M_start;
          local_90 = (Symbol_table *)
                     (local_c0->local_values_).
                     super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                     ._M_impl._M_finish;
          if ((uint)((int)local_90 - (int)pSVar11 >> 4) <= local_a4) {
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c62b;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x8c1;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */
            *(undefined4 *)((int)puVar34 + -0x14) = 0x50169;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          local_9c = pSVar11 + (int)local_a4;
          local_b0 = *(uint *)&local_9c->field_0x8 & 0x7ffffff;
          if (((local_9c->field_0xb & 8) == 0) || (local_b0 == 0)) {
            local_90 = (Symbol_table *)0x0;
            local_ac = &symval;
            goto LAB_0004e2a0;
          }
          ppOVar13 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                     ._M_impl._M_start;
          local_90 = (Symbol_table *)
                     (local_c0->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                     ._M_impl._M_finish;
          if ((uint)((int)local_90 - (int)ppOVar13 >> 2) <= local_b0) {
            *(uint *)((int)puVar34 + -4) = local_b0;
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6d7;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x50b;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */
            *(undefined1 **)((int)puVar34 + -0x14) = &LAB_000502ba;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          local_90 = (Symbol_table *)ppOVar13[local_b0];
          if (local_90 != (Symbol_table *)0x0) {
            local_90 = (Symbol_table *)0x0;
            local_ac = &symval;
            goto LAB_0004e2a0;
          }
          *(uint *)((int)puVar34 + -8) = local_b0;
          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;
          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;
                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */
          *(undefined4 *)((int)puVar34 + -0x14) = 0x4fd1a;
          bVar18 = gold::Symbol_table::is_section_folded
                             (*(Symbol_table **)((int)puVar34 + -0x10),
                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8));
          if (bVar18) {
            local_ac = &symval;
            uVar22 = *(uint *)(prelocs + 4);
            goto LAB_0004e2a0;
          }
LAB_0004f331:
          local_ac = &symval;
          local_a0 = &symval_1;
          pp_Var2 = (local_c0->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object
          ;
          *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;
          *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = local_c0;
          *(Symbol_value<32> **)((int)puVar34 + -0x10) = local_a0;
          local_c4 = &symval2;
          symval2.output_symtab_index_ = 0;
          symval2.output_dynsym_index_ = 0xffffffff;
          symval2._8_4_ = 0x80000000;
          symval2.u_.value = 0;
                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */
          p_Var3 = pp_Var2[0x10];
          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f375;
          (*p_Var3)();
          bVar18 = false;
          bVar39 = local_b4 == 0;
          if (bVar39) {
            iVar28 = 6;
            pbVar36 = (byte *)symval_1.output_symtab_index_;
            pbVar35 = (byte *)((int)local_94 + -0xf3ac3);
            do {
              if (iVar28 == 0) break;
              iVar28 = iVar28 + -1;
              bVar18 = *pbVar36 < *pbVar35;
              bVar39 = *pbVar36 == *pbVar35;
              pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
            } while (bVar39);
            bVar38 = false;
            bVar18 = (!bVar18 && !bVar39) == bVar18;
            if (!bVar18) {
              iVar28 = 7;
              pbVar36 = (byte *)symval_1.output_symtab_index_;
              ppuVar32 = local_94 + -0x3ceaf;
              do {
                if (iVar28 == 0) break;
                iVar28 = iVar28 + -1;
                bVar38 = *pbVar36 < *(byte *)ppuVar32;
                bVar18 = *pbVar36 == *(byte *)ppuVar32;
                pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
              } while (bVar18);
              bVar39 = false;
              bVar18 = (!bVar38 && !bVar18) == bVar38;
              if (!bVar18) {
                iVar28 = 0x11;
                pbVar36 = (byte *)symval_1.output_symtab_index_;
                ppuVar32 = local_94 + -0x3cead;
                do {
                  if (iVar28 == 0) break;
                  iVar28 = iVar28 + -1;
                  bVar39 = *pbVar36 < *(byte *)ppuVar32;
                  bVar18 = *pbVar36 == *(byte *)ppuVar32;
                  pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                  ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
                } while (bVar18);
                bVar38 = false;
                bVar18 = (!bVar39 && !bVar18) == bVar39;
                if (!bVar18) {
                  iVar28 = 5;
                  pbVar36 = (byte *)symval_1.output_symtab_index_;
                  pbVar35 = (byte *)((int)local_94 + -0xf3aa2);
                  do {
                    if (iVar28 == 0) break;
                    iVar28 = iVar28 + -1;
                    bVar38 = *pbVar36 < *pbVar35;
                    bVar18 = *pbVar36 == *pbVar35;
                    pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                    pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                  } while (bVar18);
                  bVar39 = false;
                  bVar18 = (!bVar38 && !bVar18) == bVar38;
                  if (!bVar18) {
                    iVar28 = 5;
                    pbVar36 = (byte *)symval_1.output_symtab_index_;
                    ppuVar32 = local_94 + -0x3cea7;
                    do {
                      if (iVar28 == 0) break;
                      iVar28 = iVar28 + -1;
                      bVar39 = *pbVar36 < *(byte *)ppuVar32;
                      bVar18 = *pbVar36 == *(byte *)ppuVar32;
                      pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                      ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
                    } while (bVar18);
                    bVar38 = false;
                    bVar18 = (!bVar39 && !bVar18) == bVar39;
                    if (!bVar18) {
                      iVar28 = 4;
                      pbVar36 = (byte *)symval_1.output_symtab_index_;
                      pbVar35 = (byte *)((int)local_94 + -0xf3a96);
                      do {
                        if (iVar28 == 0) break;
                        iVar28 = iVar28 + -1;
                        bVar38 = *pbVar36 < *pbVar35;
                        bVar18 = *pbVar36 == *pbVar35;
                        pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                      } while (bVar18);
                      bVar39 = false;
                      bVar18 = (!bVar38 && !bVar18) == bVar38;
                      if (!bVar18) {
                        iVar28 = 10;
                        pbVar36 = (byte *)symval_1.output_symtab_index_;
                        pbVar35 = (byte *)((int)local_94 + -0xf1212);
                        do {
                          if (iVar28 == 0) break;
                          iVar28 = iVar28 + -1;
                          bVar39 = *pbVar36 < *pbVar35;
                          bVar18 = *pbVar36 == *pbVar35;
                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        } while (bVar18);
                        bVar38 = false;
                        bVar18 = (!bVar39 && !bVar18) == bVar39;
                        if (!bVar18) {
                          iVar28 = 0x12;
                          pbVar36 = (byte *)symval_1.output_symtab_index_;
                          pbVar35 = (byte *)((int)local_94 + -0xf3a91);
                          do {
                            if (iVar28 == 0) break;
                            iVar28 = iVar28 + -1;
                            bVar38 = *pbVar36 < *pbVar35;
                            bVar18 = *pbVar36 == *pbVar35;
                            pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                          } while (bVar18);
                          if ((!bVar38 && !bVar18) != bVar38) goto LAB_0004f50a;
                        }
                        goto LAB_0004f5da;
                      }
                    }
                  }
                }
              }
            }
LAB_0004f3ac:
            *(bool **)((int)puVar34 + -8) = &found;
            *(Symbol_value<32> **)((int)puVar34 + -0xc) = local_a0;
            *(uint *)((int)puVar34 + -0x10) = local_b0;
            *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = local_c0;
                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */
            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f3cd;
            AVar26 = gold::Sized_relobj_file<32,_false>::map_to_kept_section
                               (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                *(uint *)((int)puVar34 + -0x10),*(string **)((int)puVar34 + -0xc),
                                *(bool **)((int)puVar34 + -8));
            symval2.u_ = (anon_union_4_2_6a937475_for_u_)0x0;
            if (found != false) {
              symval2.u_.merged_symbol_value =
                   (Merged_symbol_value<32> *)
                   ((int)&((local_9c->u_).merged_symbol_value)->input_value_ + AVar26);
            }
            local_b4 = 1;
          }
          else {
            if (local_b4 == 1) goto LAB_0004f3ac;
            if (local_b4 == 3) {
LAB_0004f50a:
              pSVar10 = relinfo->object;
              if (local_90 == (Symbol_table *)0x0) {
                *(Value **)((int)puVar34 + -0x10) = local_a4;
                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f94d;
                pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name
                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                     *(uint *)((int)puVar34 + -0x10));
                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdfa;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f965;
                uVar23 = gettext();
                *(Value **)((int)puVar34 + -0xc) = local_a4;
                *(char **)((int)puVar34 + -0x10) = pcVar29;
                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;
                *(uint *)((int)puVar34 + -0x1c) = local_b8;
                *(size_t *)((int)puVar34 + -0x20) = local_a8;
                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;
                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f98d;
                gold::gold_error_at_location<32,_false>
                          (*(gold **)((int)puVar34 + -0x24),
                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),
                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),
                           *(char **)((int)puVar34 + -0x10));
              }
              else {
                *(Symbol_table **)((int)puVar34 + -0x10) = local_90;
                *(bool **)((int)puVar34 + -0x14) = &found;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f536;
                gold::Symbol::demangled_name(*(Symbol **)((int)puVar34 + -0x10));
                puVar17 = _found;
                *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cde4;
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f54d;
                uVar23 = gettext();
                *(undefined1 **)((int)puVar34 + -0x10) = puVar17;
                *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                *(int *)((int)puVar34 + -0x18) = (int)local_b8 >> 0x1f;
                *(uint *)((int)puVar34 + -0x1c) = local_b8;
                *(size_t *)((int)puVar34 + -0x20) = local_a8;
                *(Relocate_info<32,_false> **)((int)puVar34 + -0x24) = relinfo;
                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */
                *(undefined4 *)((int)puVar34 + -0x28) = 0x4f570;
                gold::gold_error_at_location<32,_false>
                          (*(gold **)((int)puVar34 + -0x24),
                           *(Relocate_info<32,_false> **)((int)puVar34 + -0x20),
                           *(size_t *)((int)puVar34 + -0x1c),*(off_t *)((int)puVar34 + -0x18),
                           *(char **)((int)puVar34 + -0x10));
                if (_found != local_2c) {
                  *(undefined1 **)((int)puVar34 + -0x14) = _found;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f586;
                  operator_delete(*(void **)((int)puVar34 + -0x14));
                }
              }
              *(bool **)((int)puVar34 + -8) = &is_ordinary;
              *(Elf_Addr **)((int)puVar34 + -0xc) = &value;
              *(Value **)((int)puVar34 + -0x10) = local_a4;
              *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */
              *(undefined4 *)((int)puVar34 + -0x18) = 0x4f5a3;
              uVar22 = gold::Sized_relobj_file<32,_false>::symbol_section_and_value
                                 (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                  *(uint *)((int)puVar34 + -0x10),*(Address **)((int)puVar34 + -0xc)
                                  ,*(bool **)((int)puVar34 + -8));
              if (uVar22 != 0) {
                *(uint **)((int)puVar34 + -0xc) = &key_symndx;
                *(uint *)((int)puVar34 + -0x10) = uVar22;
                *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */
                *(undefined4 *)((int)puVar34 + -0x18) = 0x4f844;
                pRVar27 = gold::Sized_relobj_file<32,_false>::find_kept_section_object
                                    (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                     *(uint *)((int)puVar34 + -0x10),*(uint **)((int)puVar34 + -0xc)
                                    );
                if (key_symndx != 0) {
                  *(uint *)((int)puVar34 + -0x10) = key_symndx;
                  *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14) = pSVar10;
                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff50;
                  pcVar29 = gold::Sized_relobj_file<32,_false>::get_symbol_name
                                      (*(Sized_relobj_file<32,_false> **)((int)puVar34 + -0x14),
                                       *(uint *)((int)puVar34 + -0x10));
                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdcf;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff68;
                  uVar23 = gettext();
                  *(char **)((int)puVar34 + -0x10) = pcVar29;
                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4ff77;
                  gold::gold_info(*(char **)((int)puVar34 + -0x14));
                }
                if (pRVar27 != (Relobj *)0x0) {
                  pcVar14 = (pRVar27->super_Object).name_._M_dataplus._M_p;
                  *(undefined ***)((int)puVar34 + -0x14) = local_94 + -0x3cdc7;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f876;
                  uVar23 = gettext();
                  *(pointer *)((int)puVar34 + -0x10) = pcVar14;
                  *(undefined4 *)((int)puVar34 + -0x14) = uVar23;
                  *(undefined4 *)((int)puVar34 + -0x18) = 0x4f87f;
                  gold::gold_info(*(char **)((int)puVar34 + -0x14));
                }
              }
              local_b4 = 3;
            }
            else {
LAB_0004f5da:
              local_b4 = 2;
            }
            symval2.u_.value = 0;
          }
          puVar33 = (undefined4 *)((int)puVar34 + -4);
          if (symval2.output_symtab_index_ != 0) {
            *(undefined ***)((int)puVar34 + -0xc) = local_94 + -0x3c71c;
            *(undefined4 *)((int)puVar34 + -0x10) = 0x716;
            *(int *)((int)puVar34 + -0x14) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */
            *(undefined4 *)((int)puVar34 + -0x18) = 0x50110;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x14),*(int *)((int)puVar34 + -0x10),
                       *(char **)((int)puVar34 + -0xc));
          }
          symval2.output_symtab_index_ = 0xffffffff;
          if ((undefined1 *)symval_1.output_symtab_index_ != &symval_1.field_0x8) {
            *(uint *)((int)puVar34 + -0x14) = symval_1.output_symtab_index_;
            *(undefined4 *)((int)puVar34 + -0x18) = 0x4f41b;
            operator_delete(*(void **)((int)puVar34 + -0x14));
          }
          local_c4 = &symval2;
          uVar22 = *(uint *)(prelocs + 4);
          local_9c = &symval2;
        }
        else {
          if ((reloc_symbol_changes != (Reloc_symbol_changes *)0x0) &&
             (local_90 = (Symbol_table *)
                         (reloc_symbol_changes->vec_).
                         super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                         _M_start[local_a8], local_90 != (Symbol_table *)0x0)) goto LAB_0004e238;
          if (local_a4 < local_c0->local_symbol_count_) {
LAB_00050110:
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c70f;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x17f;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */
            *(undefined **)((int)puVar34 + -0x14) = &UNK_00050131;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          ppSVar12 = (local_c0->symbols_).
                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                     _M_start;
          uVar22 = (int)local_a4 - local_c0->local_symbol_count_;
          local_90 = (Symbol_table *)
                     (local_c0->symbols_).
                     super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                     _M_finish;
          if ((uint)((int)local_90 - (int)ppSVar12 >> 2) <= uVar22) {
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c6c2;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x8ad;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar34 + -0x14) = 0x5018a;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
          local_90 = (Symbol_table *)ppSVar12[uVar22];
          if (local_90 == (Symbol_table *)0x0) goto LAB_00050110;
          if (((local_90->table_)._M_h._M_bucket_count & 0x100000) == 0) goto LAB_0004e238;
          *(Symbol_table **)((int)puVar34 + -0xc) = local_90;
          *(Symbol_table **)((int)puVar34 + -0x10) = relinfo->symtab;
                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */
          *(undefined4 *)((int)puVar34 + -0x14) = 0x4f795;
          local_90 = (Symbol_table *)
                     gold::Symbol_table::resolve_forwards
                               (*(Symbol_table **)((int)puVar34 + -0x10),
                                *(Symbol **)((int)puVar34 + -0xc));
          uVar31 = local_90->output_count_;
          uVar22 = uVar31 - 1;
          if (uVar22 < 0xfffffffe) {
            if ((symval.output_symtab_index_ != 0) && (symval.output_symtab_index_ != 0xfffffffe)) {
              *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c715;
              *(undefined4 *)((int)puVar34 + -0xc) = 0x70c;
              *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */
              *(undefined4 *)((int)puVar34 + -0x14) = 0x500a1;
              gold::do_gold_unreachable
                        (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                         *(char **)((int)puVar34 + -8));
            }
            goto LAB_0004f6b0;
          }
          if (symval.output_symtab_index_ != 0) {
            *(undefined ***)((int)puVar34 + -8) = local_94 + -0x3c71c;
            *(undefined4 *)((int)puVar34 + -0xc) = 0x716;
            *(int *)((int)puVar34 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
            *(undefined **)((int)puVar34 + -0x14) = &UNK_0004f7d9;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar34 + -0x10),*(int *)((int)puVar34 + -0xc),
                       *(char **)((int)puVar34 + -8));
          }
LAB_0004e24d:
          symval.output_symtab_index_ = 0xffffffff;
LAB_0004e254:
          symval.u_ = (anon_union_4_2_6a937475_for_u_)(local_90->table_)._M_h._M_element_count;
          bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count & 0xf;
          if (bVar21 == 6) {
            symval._8_4_ = symval._8_4_ | 0x20000000;
          }
          else if (bVar21 == 10) {
            symval._8_4_ = symval._8_4_ | 0x40000000;
          }
          bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
          if ((char)bVar21 < '\0') {
            sVar15 = (local_90->table_)._M_h._M_bucket_count;
            if ((sVar15 & 0x70000) == 0) {
              if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&
                 ((bVar21 & 0x20) != 0)) {
LAB_0004f318:
                local_b0 = 0;
                local_9c = &symval;
                goto LAB_0004f331;
              }
              local_ac = &symval;
              uVar22 = *(uint *)(prelocs + 4);
              local_9c = &symval;
            }
            else {
              if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004f318;
              local_ac = &symval;
              uVar22 = *(uint *)(prelocs + 4);
              local_9c = &symval;
            }
          }
          else {
            local_ac = &symval;
            local_9c = &symval;
            uVar22 = *(uint *)(prelocs + 4);
          }
LAB_0004e2a0:
          symval2.output_symtab_index_ = 0;
          symval2.output_dynsym_index_ = 0xffffffff;
          symval2._8_4_ = 0x80000000;
          symval2.u_.value = 0;
          local_c4 = &symval2;
          puVar33 = puVar34;
        }
        ppuVar32 = local_94;
        local_b0 = uVar22 & 0xff;
        local_c8 = address + local_b8;
        if (((int)local_b8 < 0) || (view_size <= local_b8)) {
          local_a4 = (Value *)0x0;
          rel.p_ = (Rel_data<32> *)prelocs;
LAB_0004f1c0:
          rel.p_ = (Rel_data<32> *)prelocs;
          puVar33[-4] = (int)local_94 + -0xf3a7f;
          puVar33[-5] = 0x4f1d7;
          uVar23 = gettext();
          puVar33[-3] = local_b8;
          puVar33[-4] = uVar23;
          puVar33[-5] = (int)local_b8 >> 0x1f;
          puVar33[-6] = local_b8;
          puVar33[-7] = local_a8;
          puVar33[-8] = relinfo;
          puVar33[-9] = 0x4f1f4;
          gold::gold_error_at_location<32,_false>
                    ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],
                     *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);
        }
        else {
          local_a4 = (Value *)(view + local_b8);
          rel.p_ = (Rel_data<32> *)prelocs;
          if (local_a4 == (Value *)0x0) goto LAB_0004f1c0;
          symval_1.output_symtab_index_ = 0;
          symval_1.output_dynsym_index_ = 0xffffffff;
          local_bc = relinfo->object;
          symval_1._8_4_ = 0x80000000;
          symval_1.u_.value = 0;
          if (local_90 == (Symbol_table *)0x0) {
            if ((local_9c->field_0xb & 0x40) != 0) {
              uVar22 = *(uint *)(prelocs + 4);
              local_a0 = &symval_1;
              puVar33[-3] = uVar22 >> 8;
              puVar33[-4] = local_bc;
                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */
              puVar33[-5] = 0x4f227;
              bVar18 = gold::Sized_relobj_file<32,_false>::local_has_plt_offset
                                 ((Sized_relobj_file<32,_false> *)puVar33[-4],puVar33[-3]);
              if (bVar18) {
                pOVar9 = this->plt_;
                if (pOVar9 == (Output_data_plt_i386 *)0x0) {
                  local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */
                  puVar33[-1] = 0x50363;
                  plt_section((Target_i386 *)*puVar33);
                }
                if ((pOVar9->field_0x1c & 1) == 0) {
                  puVar33[-1] = ppuVar32;
                  puVar33[-2] = local_94 + -0x3c624;
                  puVar33[-3] = 0xc5;
                  puVar33[-4] = (int)local_94 + -0xf3ca3;
                  local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                  puVar33[-5] = &LAB_0005038b;
                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                }
                local_9c = *(Symbol_value<32> **)&pOVar9->field_0x4;
                local_98 = *(int *)&pOVar9->field_0x8;
                uVar31 = pOVar9->count_;
                iVar28 = pOVar9->plt_eh_frame_cie_size;
                puVar33[-4] = pOVar9;
                local_a0 = &symval_1;
                pcVar8 = *(code **)(iVar28 + 100);
                puVar33[-5] = 0x4f274;
                iVar28 = (*pcVar8)();
                uVar31 = (uVar31 + 1) * iVar28;
                bVar18 = CARRY4(uVar31,(uint)local_9c);
                local_9c = (Symbol_value<32> *)(uVar31 + (int)local_9c);
                local_98 = local_98 + (uint)bVar18;
                pp_Var2 = (local_bc->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                          _vptr_Object;
                puVar33[-3] = uVar22 >> 8;
                puVar33[-4] = local_bc;
                local_a0 = &symval_1;
                p_Var3 = pp_Var2[0x2a];
                puVar33[-5] = 0x4f2ae;
                iVar28 = (*p_Var3)();
                symval_1.u_.merged_symbol_value =
                     (Merged_symbol_value<32> *)(iVar28 + (int)local_9c);
                local_9c = &symval_1;
              }
            }
            local_a0 = &symval_1;
            if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();
              return;
            }
LAB_0004e736:
            local_a0 = &symval_1;
            puVar33[-4] = local_94 + -0x3ceb6;
            puVar33[-5] = 0x4e847;
            uVar23 = gettext();
            puVar33[-3] = local_b0;
            puVar33[-4] = uVar23;
            EVar5 = (rel.p_)->r_offset;
            puVar33[-5] = 0;
            puVar33[-6] = EVar5;
            puVar33[-7] = local_a8;
            puVar33[-8] = relinfo;
            puVar33[-9] = 0x4e867;
            gold::gold_error_at_location<32,_false>
                      ((gold *)puVar33[-8],(Relocate_info<32,_false> *)puVar33[-7],puVar33[-6],
                       *(off_t *)(puVar33 + -5),(char *)puVar33[-3]);
          }
          else {
            if ((((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) || (local_b0 != 1)) {
              uVar31 = 0;
              uVar22 = local_b0 - 1;
              if (uVar22 < 0x2b) goto LAB_0004f078;
LAB_0004e381:
              if (*(uint *)((int)&local_90->dynamic_offset_ + 4) != 0xffffffff) {
                if (((local_90->table_)._M_h._M_bucket_count & 0xf) != 10) {
                  puVar33[-3] = uVar31;
                  puVar33[-4] = local_90;
                  local_a0 = &symval_1;
                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */
                  puVar33[-5] = 0x4e3c4;
                  bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);
                  if (bVar18) goto LAB_0004e466;
                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
                  bVar19 = bVar21 & 7;
                  if (((bVar21 & 7) != 0) ||
                     (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment
                             ->output_lists_[3].
                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                             ._M_impl._M_end_of_storage & 1) == 0)) {
                    ppuVar32 = local_94 + 0xbc;
                    if (*(int *)(*ppuVar32 + 8) == 0) {
                      puVar33[-2] = local_94 + -0x3c69e;
                      puVar33[-3] = 0x5c;
                      puVar33[-4] = (int)local_94 + -0xf8d93;
                      local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */
                      puVar33[-5] = 0x501dc;
                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])
                      ;
                    }
                    if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x1a25) == '\0') {
LAB_0004e454:
                      if ((uVar31 & 8) != 0) {
                        sVar15 = (local_90->table_)._M_h._M_bucket_count;
                        if ((sVar15 & 0x70000) == 0) {
                          if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                               ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx
                               == 0) &&
                             (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {
LAB_0004ebf4:
                            if (((byte)((byte)(local_90->table_)._M_h._M_bucket_count >> 4) != 2) &&
                               (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)) {
                              if (*(int *)(*ppuVar32 + 8) == 0) {
                                puVar33[-1] = ppuVar32;
                                puVar33[-2] = local_94 + -0x3c69e;
                                puVar33[-3] = 0x5c;
                                puVar33[-4] = (int)local_94 + -0xf8d93;
                                local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                                puVar33[-5] = &LAB_0005044d;
                                gold::do_gold_unreachable
                                          ((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                              }
                              if (*(char *)(*(int *)(*ppuVar32 + 8) + 0x49b1) == '\0')
                              goto LAB_0004e466;
                            }
                            goto LAB_0004eb80;
                          }
                        }
                        else if ((sVar15 & 0x70000) == 0x40000) goto LAB_0004ebf4;
                      }
                      goto LAB_0004e466;
                    }
                    if (bVar19 == 0) {
                      if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                           ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx != 0)
                         || (((local_90->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {
LAB_0004e432:
                        puVar33[-4] = local_90;
                        local_a0 = &symval_1;
                        puVar33[-5] = 0x4e449;
                        bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);
                        if (!bVar18) goto LAB_0004e454;
                      }
                    }
                    else if (bVar19 != 4) goto LAB_0004e432;
                  }
                }
LAB_0004eb80:
                if (this->plt_ == (Output_data_plt_i386 *)0x0) {
                  local_a0 = &symval_1;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */
                  puVar33[-1] = 0x50198;
                  plt_section((Target_i386 *)*puVar33);
                }
                local_a0 = &symval_1;
                puVar33[-1] = 0x4eba2;
                uVar41 = Output_data_plt_i386::address_for_global
                                   ((Output_data_plt_i386 *)*puVar33,(Symbol *)puVar33[1]);
                symval_1.u_.value = (Value)uVar41;
                local_9c = &symval_1;
              }
LAB_0004e466:
              local_a0 = &symval_1;
              if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();
                return;
              }
              goto LAB_0004e736;
            }
            puVar33[-3] = 1;
            puVar33[-4] = local_90;
            local_a0 = &symval_1;
            puVar33[-5] = 0x4ea09;
            bVar18 = gold::Symbol::needs_dynamic_reloc((Symbol *)puVar33[-4],puVar33[-3]);
            pSVar6 = local_90;
            if (!bVar18) {
LAB_0004f070:
              uVar22 = 0;
LAB_0004f078:
              uVar31 = (uint)*(char *)((int)local_94 + (uVar22 - 0xf2040));
              goto LAB_0004e381;
            }
            puVar33[-3] = 0;
            puVar33[-4] = local_90;
            local_a0 = &symval_1;
            puVar33[-5] = 0x4ea2e;
            bVar18 = gold::Symbol::can_use_relative_reloc
                               ((Symbol *)puVar33[-4],*(bool *)(puVar33 + -3));
            if (!bVar18) goto LAB_0004f070;
            sVar15 = (pSVar6->table_)._M_h._M_bucket_count;
            if ((sVar15 & 0x70000) != 0) {
              if ((sVar15 & 0x70000) != 0x40000) goto LAB_0004ea6a;
              goto LAB_0004f070;
            }
            if ((((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_)->output_segment->
                        output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage & 1) != 0) ||
               ((((anon_union_4_3_b582a2bd_for_u2_ *)
                 ((anon_union_4_3_b0f6f408_for_u1_ *)&pSVar6->offset_ + 1))->shndx == 0 &&
                (((pSVar6->table_)._M_h._M_bucket_count & 0x20000000) != 0)))) goto LAB_0004f070;
LAB_0004ea6a:
            puVar33[-4] = local_90;
            local_a0 = &symval_1;
            puVar33[-5] = 0x4ea81;
            bVar18 = gold::Symbol::is_preemptible((Symbol *)puVar33[-4]);
            if (bVar18) goto LAB_0004f070;
            local_a0 = &symval_1;
            puVar33[-4] = output_section;
            puVar33[-5] = 0x4eab3;
            bVar18 = Relocate::should_apply_static_reloc
                               ((Relocate *)puVar33[-4],(Sized_symbol<32> *)puVar33[-3],puVar33[-2],
                                *(bool *)(puVar33 + -1),(Output_section *)*puVar33);
            pVVar16 = local_a4;
            if (bVar18) {
              puVar33[-2] = *local_a4;
              puVar33[-3] = local_bc;
              puVar33[-4] = local_9c;
              puVar33[-5] = 0x4eada;
              VVar24 = gold::Symbol_value<32>::value<false>
                                 ((Symbol_value<32> *)puVar33[-4],
                                  (Sized_relobj_file<32,_false> *)puVar33[-3],puVar33[-2]);
              *pVVar16 = VVar24;
            }
          }
          puVar33[-4] = local_a0;
          puVar33[-5] = 0x4e4c6;
          gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);
          if (local_90 != (Symbol_table *)0x0) {
            bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
            uVar31 = (uint)bVar21;
            uVar22 = uVar31 & 7;
            if ((bVar21 & 7) == 0) {
              if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&
                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {
LAB_0004ecc9:
                bVar21 = (byte)(local_90->table_)._M_h._M_bucket_count;
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                if ((bVar21 >> 4 == 2) ||
                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0)) {
LAB_0004ef40:
                  bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                  local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                  bVar21 = bVar21 & 3;
                }
                else {
                  iVar28 = *(int *)(local_94[0xbc] + 8);
                  if (iVar28 == 0) {
                    puVar33[-1] = uVar31;
                    puVar33[-2] = local_94 + -0x3c69e;
                    puVar33[-3] = 0x5c;
                    puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */
                    puVar33[-5] = 0x5029b;
                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                  }
                  if (*(char *)(iVar28 + 0x49b1) != '\0') goto LAB_0004ef40;
                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                  ppuVar32 = local_94 + 0xbc;
                  if ((char)bVar19 < '\0') {
                    if ((char)uVar22 != '\0') goto LAB_0004f8f7;
                    ppuVar32 = local_94 + -0xba878;
LAB_0004ed40:
                    ppuVar4 = (undefined **)
                              ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->
                              _vptr_Object[5];
                    if (ppuVar4 == ppuVar32) goto LAB_0004e51b;
                    puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;
                    puVar33[-5] = 0x4ed5c;
                    iVar28 = (*(code *)ppuVar4)();
                    ppuVar32 = local_e4;
                    if (iVar28 != 0) goto LAB_0004ed70;
LAB_0004eea0:
                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                    bVar21 = bVar21 & 3;
                  }
                  else {
LAB_0004ed70:
                    piVar7 = *(int **)(*ppuVar32 + 0xc);
                    if (piVar7 == (int *)0x0) {
                      puVar33[-2] = local_94 + -0x3c759;
                      puVar33[-3] = 0x69;
                      puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */
                      puVar33[-5] = 0x501fa;
                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])
                      ;
                    }
                    iVar28 = *piVar7;
                    puVar33[-3] = local_90;
                    puVar33[-4] = piVar7;
                    pcVar8 = *(code **)(iVar28 + 0x1c);
                    puVar33[-5] = 0x4ed8c;
                    cVar20 = (*pcVar8)();
                    pSVar6 = local_90;
                    if (cVar20 != '\0') goto LAB_0004eea0;
                    iVar28 = *(int *)(*ppuVar32 + 8);
                    if (iVar28 == 0) {
                      puVar33[-2] = local_94 + -0x3c69e;
                      puVar33[-3] = 0x5c;
                      puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                      puVar33[-5] = &LAB_00050218;
                      gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2])
                      ;
                    }
                    pbVar36 = *(byte **)(iVar28 + 0x42e4);
                    bVar18 = false;
                    bVar39 = pbVar36 == (byte *)0x0;
                    if (bVar39) {
                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                      bVar21 = bVar21 & 3;
LAB_0004ee51:
                      if ((bVar21 == 2) ||
                         ((*(char *)(iVar28 + 0x1a25) == '\0' ||
                          (*(char *)(iVar28 + 0x4eb5) != '\0')))) {
LAB_0004ee67:
                        puVar33[-4] = (int)local_b8 >> 0x1f;
                        puVar33[-5] = local_b8;
                        puVar33[-6] = local_a8;
                        puVar33[-7] = relinfo;
                        puVar33[-8] = local_90;
                        puVar33[-9] = 0x4ee8e;
                        gold::gold_undefined_symbol_at_location<32,_false>
                                  ((gold *)puVar33[-8],(Symbol *)puVar33[-7],
                                   (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],
                                   *(off_t *)(puVar33 + -4));
                        bVar19 = *(undefined1 *)((int)&(pSVar6->table_)._M_h._M_bucket_count + 3);
                        goto LAB_0004e538;
                      }
                    }
                    else {
                      iVar30 = 0xb;
                      pbVar35 = pbVar36;
                      pbVar37 = (byte *)((int)local_94 + -0xf8fa6);
                      do {
                        if (iVar30 == 0) break;
                        iVar30 = iVar30 + -1;
                        bVar18 = *pbVar35 < *pbVar37;
                        bVar39 = *pbVar35 == *pbVar37;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;
                      } while (bVar39);
                      bVar38 = false;
                      bVar18 = (!bVar18 && !bVar39) == bVar18;
                      if (bVar18) goto LAB_0004eea0;
                      iVar30 = 0xb;
                      pbVar35 = pbVar36;
                      pbVar37 = (byte *)((int)local_94 + -0xf8f9b);
                      do {
                        if (iVar30 == 0) break;
                        iVar30 = iVar30 + -1;
                        bVar38 = *pbVar35 < *pbVar37;
                        bVar18 = *pbVar35 == *pbVar37;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        pbVar37 = pbVar37 + (uint)bVar40 * -2 + 1;
                      } while (bVar18);
                      bVar39 = false;
                      bVar18 = (!bVar38 && !bVar18) == bVar38;
                      if (bVar18) goto LAB_0004ee67;
                      iVar30 = 0x17;
                      pbVar35 = pbVar36;
                      ppuVar32 = local_94 + -0x3e3e4;
                      do {
                        if (iVar30 == 0) break;
                        iVar30 = iVar30 + -1;
                        bVar39 = *pbVar35 < *(byte *)ppuVar32;
                        bVar18 = *pbVar35 == *(byte *)ppuVar32;
                        pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        ppuVar32 = (undefined **)((int)ppuVar32 + (uint)bVar40 * -2 + 1);
                      } while (bVar18);
                      bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                      local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar21);
                      bVar21 = bVar21 & 3;
                      bVar18 = (!bVar39 && !bVar18) == bVar39;
                      if ((!bVar18) ||
                         (bVar18 = ((local_90->table_)._M_h._M_bucket_count & 0x1000000) == 0,
                         !bVar18)) {
                        bVar39 = false;
                        iVar30 = 0x16;
                        pbVar35 = (byte *)((int)local_94 + -0xf8f79);
                        do {
                          if (iVar30 == 0) break;
                          iVar30 = iVar30 + -1;
                          bVar39 = *pbVar36 < *pbVar35;
                          bVar18 = *pbVar36 == *pbVar35;
                          pbVar36 = pbVar36 + (uint)bVar40 * -2 + 1;
                          pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
                        } while (bVar18);
                        if (((!bVar39 && !bVar18) != bVar39) ||
                           ((char)*(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2)
                            < '\0')) goto LAB_0004ee51;
                      }
                    }
                  }
                }
                if (bVar21 == 0) goto LAB_0004efaf;
                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                bVar19 = bVar19 & 7;
                uVar22 = (uint)bVar19;
                if (bVar19 != 0) goto LAB_0004eee0;
              }
              else {
                ppuVar32 = local_94 + -0xba878;
                ppuVar4 = (undefined **)
                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object->
                          _vptr_Object[5];
                if (ppuVar4 != ppuVar32) {
                  puVar33[-4] = ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->object;
                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */
                  puVar33[-5] = 0x4f896;
                  iVar28 = (*(code *)ppuVar4)();
                  if (iVar28 != 0) {
                    bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 2);
                    uVar31 = (uint)bVar21;
                    uVar22 = uVar31 & 7;
                    if ((bVar21 & 7) == 0) {
                      if (((anon_union_4_3_b582a2bd_for_u2_ *)
                          ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0)
                      {
                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                        if ((bVar21 & 0x20) != 0) goto LAB_0004ecc9;
                      }
                      else {
                        bVar21 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                      }
                      if ((char)bVar21 < '\0') goto LAB_0004ed40;
LAB_0004f8c5:
                      ppuVar32 = local_94 + 0xbc;
                      goto LAB_0004ed70;
                    }
                    if ((char)uVar22 == '\x04') goto LAB_0004ecc9;
                    bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                    if (-1 < (char)bVar19) goto LAB_0004f8c5;
LAB_0004f8f7:
                    bVar1 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                    local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar1);
                    bVar21 = bVar1 & 3;
                    if ((bVar1 & 3) != 0) {
                      uVar22 = uVar31 & 7;
                      goto LAB_0004eee0;
                    }
                    goto LAB_0004e538;
                  }
                  goto LAB_0004ef40;
                }
LAB_0004e51b:
                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                bVar21 = bVar19 & 3;
                if ((bVar19 & 3) == 0) goto LAB_0004e534;
                uVar22 = uVar31 & 7;
              }
              if ((((anon_union_4_3_b582a2bd_for_u2_ *)
                   ((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_ + 1))->shndx == 0) &&
                 (((local_90->table_)._M_h._M_bucket_count & 0x20000000) != 0)) {
                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                if ((bVar19 >> 4 == 2) ||
                   (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) != 0))
                goto LAB_0004ec9c;
LAB_0004ef17:
                if (*(int *)(*local_e0 + 8) == 0) {
                  puVar33[-1] = local_e0;
                  puVar33[-2] = local_94 + -0x3c69e;
                  puVar33[-3] = 0x5c;
                  puVar33[-4] = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */
                  puVar33[-5] = &UNK_000500bd;
                  gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                }
                if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {
                  if ((char)uVar22 != '\0') goto LAB_0004efaf;
                  goto LAB_0004ec9c;
                }
LAB_0004ef58:
                if (bVar21 == 2) {
                  puVar33[-4] = (int)local_94 + -0xf3a5d;
                  puVar33[-5] = 0x4fcf5;
                  uVar23 = gettext();
                }
                else if (bVar21 < 3) {
                  if (bVar21 != 1) {
                    puVar33[-1] = uVar22;
                    puVar33[-2] = local_94 + -0x3c75e;
                    puVar33[-3] = 0xa4;
                    puVar33[-4] = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */
                    puVar33[-5] = &LAB_0005025b;
                    gold::do_gold_unreachable((char *)puVar33[-4],puVar33[-3],(char *)puVar33[-2]);
                  }
                  puVar33[-4] = (int)local_94 + -0xf3a66;
                  puVar33[-5] = 0x4efdd;
                  uVar23 = gettext();
                }
                else {
                  puVar33[-4] = (int)local_94 + -0xf3a56;
                  puVar33[-5] = 0x4ef77;
                  uVar23 = gettext();
                }
                pp_Var2 = ((Output_data *)&local_90->saw_undefined_)->_vptr_Output_data;
                puVar33[-4] = local_94 + -0x3cd73;
                puVar33[-5] = 0x4ef9b;
                uVar25 = gettext();
                puVar33[-2] = pp_Var2;
                puVar33[-3] = uVar23;
                puVar33[-4] = uVar25;
                puVar33[-5] = 0x4efac;
                gold::gold_error((char *)puVar33[-4]);
                goto LAB_0004efaf;
              }
LAB_0004ec9c:
              if (((uint)((anon_union_4_3_b0f6f408_for_u1_ *)&local_90->offset_)->output_segment->
                         output_lists_[3].
                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                         ._M_impl._M_end_of_storage & 1) != 0) goto LAB_0004ef58;
              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
            }
            else {
              if ((char)uVar22 == '\x04') goto LAB_0004ecc9;
              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 1);
              local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
              bVar21 = bVar19 & 3;
              if ((bVar19 & 3) == 0) {
LAB_0004e534:
                bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                goto LAB_0004e538;
              }
LAB_0004eee0:
              if ((char)uVar22 == '\x04') {
                bVar19 = (byte)(local_90->table_)._M_h._M_bucket_count;
                local_9c = (Symbol_value<32> *)CONCAT31(local_9c._1_3_,bVar19);
                if (bVar19 >> 4 != 2) {
                  if (((uint)(local_90->table_)._M_h._M_before_begin._M_nxt & 2) == 0)
                  goto LAB_0004ef17;
                  bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
                  goto LAB_0004e538;
                }
              }
LAB_0004efaf:
              bVar19 = *(undefined1 *)((int)&(local_90->table_)._M_h._M_bucket_count + 3);
            }
LAB_0004e538:
            if ((bVar19 & 4) != 0) {
              puVar33[-3] = (int)local_b8 >> 0x1f;
              puVar33[-4] = local_b8;
              puVar33[-5] = local_a8;
              pSVar6 = relinfo->symtab;
              puVar33[-6] = relinfo;
              puVar33[-7] = local_90;
              local_90 = pSVar6;
              puVar33[-8] = &pSVar6->warnings_;
                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */
              puVar33[-9] = 0x4ec77;
              gold::Warnings::issue_warning<32,_false>
                        ((Warnings *)puVar33[-8],(Symbol *)puVar33[-7],
                         (Relocate_info<32,_false> *)puVar33[-6],puVar33[-5],
                         *(off_t *)(puVar33 + -4));
            }
          }
        }
        puVar33[-4] = local_c4;
        puVar33[-5] = 0x4e54f;
        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);
        puVar33[-4] = local_ac;
        puVar33[-5] = 0x4e55b;
        gold::Symbol_value<32>::~Symbol_value((Symbol_value<32> *)puVar33[-4],puVar33[-3]);
        puVar34 = puVar33;
      }
      else {
        *(uint *)((int)puVar34 + -4) = *(uint *)prelocs;
        *(uint *)((int)puVar34 + -8) = relinfo->data_shndx;
        *(Sized_relobj_file<32,_false> **)((int)puVar34 + -0xc) = relinfo->object;
        *(Output_section **)((int)puVar34 + -0x10) = output_section;
                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */
        *(undefined4 *)((int)puVar34 + -0x14) = 0x4f6e0;
        local_b8 = gold::Output_section::output_offset
                             (*(Output_section **)((int)puVar34 + -0x10),
                              *(Relobj **)((int)puVar34 + -0xc),*(uint *)((int)puVar34 + -8),
                              *(section_offset_type *)((int)puVar34 + -4));
        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;
      }
      local_a8 = local_a8 + 1;
      prelocs = prelocs + 8;
    } while (reloc_count != local_a8);
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1,undefined4 *param_2,int param_3,uint *param_4,int param_5,
                 undefined4 param_6,char param_7,int param_8,int param_9,uint param_10,int *param_11
                 )

{
  byte bVar1;
  code *pcVar2;
  undefined **ppuVar3;
  undefined4 *puVar4;
  int *piVar5;
  undefined1 *puVar6;
  char cVar7;
  byte bVar8;
  byte bVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  byte *pbVar14;
  int iVar15;
  int iVar16;
  byte *pbVar17;
  uint uVar18;
  undefined **ppuVar19;
  undefined1 *puVar20;
  undefined1 *puVar21;
  byte *pbVar22;
  bool bVar23;
  bool bVar24;
  bool bVar25;
  byte bVar26;
  undefined1 auStack_ec [8];
  undefined **local_e4;
  undefined **local_e0;
  undefined4 *local_dc;
  char local_d1;
  int local_c8;
  byte **local_c4;
  int *local_c0;
  int *local_bc;
  uint local_b8;
  int local_b4;
  uint local_b0;
  byte **local_ac;
  int local_a8;
  undefined4 *local_a4;
  byte **local_a0;
  byte **local_9c;
  int local_98;
  undefined **local_94;
  undefined4 *local_90;
  undefined1 local_82 [2];
  undefined1 local_80 [4];
  int local_7c;
  uint *local_78;
  char local_74;
  undefined4 local_70;
  byte *local_6c;
  undefined4 local_68;
  uint local_64;
  undefined4 local_60;
  byte *local_5c;
  undefined4 local_58;
  undefined4 local_54;
  byte *local_50;
  byte *local_4c;
  undefined4 local_48;
  byte local_44 [4];
  int local_40;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  bVar26 = 0;
  local_94 = &__DT_PLTGOT;
  local_d1 = param_7;
  if (param_3 != 9) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/i386.cc",0xe64,"relocate_section");
  }
  local_74 = '\0';
  local_70 = 0;
  local_c0 = (int *)param_2[2];
  pcVar2 = *(code **)(*local_c0 + 0x8c);
  if (pcVar2 == FUN_00054e30) {
                    /* try { // try from 0004e177 to 0004e17c has its CatchHandler @ 000504c5 */
    local_dc = (undefined4 *)(**(code **)(*local_c0 + 0xbc))(local_c0);
  }
  else {
                    /* try { // try from 00050019 to 0005001a has its CatchHandler @ 000504c5 */
    local_dc = (undefined4 *)(*pcVar2)(local_c0);
  }
  puVar21 = auStack_ec;
  local_b4 = 0;
  local_a8 = 0;
  local_e4 = local_94 + 0xbc;
  puVar6 = auStack_ec;
  local_e0 = local_e4;
  if (param_5 != 0) {
    do {
      puVar21 = puVar6;
      local_b8 = *param_4;
      if (local_d1 == '\0') {
LAB_0004e1d8:
        local_6c = (byte *)0x0;
        local_68 = 0xffffffff;
        uVar10 = param_4[1];
        local_64 = 0x80000000;
        local_60 = 0;
        local_a4 = (undefined4 *)(uVar10 >> 8);
        if (local_a4 < local_dc) {
          if ((param_11 != (int *)0x0) &&
             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))
          {
LAB_0004e238:
            pbVar14 = (byte *)local_90[4];
            pbVar17 = pbVar14 + -1;
            if (pbVar17 < (byte *)0xfffffffe) goto LAB_0004f6b0;
LAB_0004e24d:
            local_6c = (byte *)0xffffffff;
            pbVar14 = local_6c;
            goto LAB_0004e254;
          }
          local_90 = (undefined4 *)local_c0[0x38];
          if ((undefined4 *)((int)local_90 - local_c0[0x37] >> 4) <= local_a4) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c62b;
            *(undefined4 *)(puVar21 + -0xc) = 0x8c1;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050164 to 00050189 has its CatchHandler @ 000504cc */
            *(undefined4 *)(puVar21 + -0x14) = 0x50169;
            FUN_0008b620();
          }
          local_9c = (byte **)(local_c0[0x37] + (int)local_a4 * 0x10);
          local_b0 = (uint)local_9c[2] & 0x7ffffff;
          if (((*(byte *)((int)local_9c + 0xb) & 8) == 0) || (local_b0 == 0)) {
            local_90 = (undefined4 *)0x0;
            goto LAB_0004e2a0;
          }
          local_90 = (undefined4 *)local_c0[0xf];
          if ((uint)((int)local_90 - local_c0[0xe] >> 2) <= local_b0) {
            *(uint *)(puVar21 + -4) = local_b0;
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6d7;
            *(undefined4 *)(puVar21 + -0xc) = 0x50b;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000502b5 to 000502b9 has its CatchHandler @ 000504cc */
            *(undefined1 **)(puVar21 + -0x14) = &LAB_000502ba;
            FUN_0008b620();
          }
          local_90 = *(undefined4 **)(local_c0[0xe] + local_b0 * 4);
          if (local_90 != (undefined4 *)0x0) {
            local_90 = (undefined4 *)0x0;
            goto LAB_0004e2a0;
          }
          *(uint *)(puVar21 + -8) = local_b0;
          *(int **)(puVar21 + -0xc) = local_c0;
          *(undefined4 *)(puVar21 + -0x10) = *param_2;
                    /* try { // try from 0004fd15 to 0004fd19 has its CatchHandler @ 000504cc */
          *(undefined4 *)(puVar21 + -0x14) = 0x4fd1a;
          cVar7 = FUN_0014ebc0();
          if (cVar7 != '\0') {
            uVar10 = param_4[1];
            goto LAB_0004e2a0;
          }
LAB_0004f331:
          local_ac = &local_6c;
          local_a0 = &local_4c;
          iVar15 = *local_c0;
          *(undefined4 *)(puVar21 + -8) = param_2[6];
          *(int **)(puVar21 + -0xc) = local_c0;
          *(byte ***)(puVar21 + -0x10) = local_a0;
          local_c4 = &local_5c;
          local_5c = (byte *)0x0;
          local_58 = 0xffffffff;
          local_54 = 0x80000000;
          local_50 = (byte *)0x0;
                    /* try { // try from 0004f372 to 0004f374 has its CatchHandler @ 000504dc */
          pcVar2 = *(code **)(iVar15 + 0x40);
          *(undefined4 *)(puVar21 + -0x14) = 0x4f375;
          (*pcVar2)();
          puVar20 = puVar21 + -4;
          bVar23 = false;
          bVar25 = local_b4 == 0;
          if (bVar25) {
            iVar15 = 6;
            pbVar17 = local_4c;
            pbVar14 = (byte *)((int)local_94 + -0xf3ac3);
            do {
              if (iVar15 == 0) break;
              iVar15 = iVar15 + -1;
              bVar23 = *pbVar17 < *pbVar14;
              bVar25 = *pbVar17 == *pbVar14;
              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
            } while (bVar25);
            bVar24 = false;
            bVar23 = (!bVar23 && !bVar25) == bVar23;
            if (!bVar23) {
              iVar15 = 7;
              pbVar17 = local_4c;
              ppuVar19 = local_94 + -0x3ceaf;
              do {
                if (iVar15 == 0) break;
                iVar15 = iVar15 + -1;
                bVar24 = *pbVar17 < *(byte *)ppuVar19;
                bVar23 = *pbVar17 == *(byte *)ppuVar19;
                pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
              } while (bVar23);
              bVar25 = false;
              bVar23 = (!bVar24 && !bVar23) == bVar24;
              if (!bVar23) {
                iVar15 = 0x11;
                pbVar17 = local_4c;
                ppuVar19 = local_94 + -0x3cead;
                do {
                  if (iVar15 == 0) break;
                  iVar15 = iVar15 + -1;
                  bVar25 = *pbVar17 < *(byte *)ppuVar19;
                  bVar23 = *pbVar17 == *(byte *)ppuVar19;
                  pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                  ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
                } while (bVar23);
                bVar24 = false;
                bVar23 = (!bVar25 && !bVar23) == bVar25;
                if (!bVar23) {
                  iVar15 = 5;
                  pbVar17 = local_4c;
                  pbVar14 = (byte *)((int)local_94 + -0xf3aa2);
                  do {
                    if (iVar15 == 0) break;
                    iVar15 = iVar15 + -1;
                    bVar24 = *pbVar17 < *pbVar14;
                    bVar23 = *pbVar17 == *pbVar14;
                    pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                    pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                  } while (bVar23);
                  bVar25 = false;
                  bVar23 = (!bVar24 && !bVar23) == bVar24;
                  if (!bVar23) {
                    iVar15 = 5;
                    pbVar17 = local_4c;
                    ppuVar19 = local_94 + -0x3cea7;
                    do {
                      if (iVar15 == 0) break;
                      iVar15 = iVar15 + -1;
                      bVar25 = *pbVar17 < *(byte *)ppuVar19;
                      bVar23 = *pbVar17 == *(byte *)ppuVar19;
                      pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                      ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
                    } while (bVar23);
                    bVar24 = false;
                    bVar23 = (!bVar25 && !bVar23) == bVar25;
                    if (!bVar23) {
                      iVar15 = 4;
                      pbVar17 = local_4c;
                      pbVar14 = (byte *)((int)local_94 + -0xf3a96);
                      do {
                        if (iVar15 == 0) break;
                        iVar15 = iVar15 + -1;
                        bVar24 = *pbVar17 < *pbVar14;
                        bVar23 = *pbVar17 == *pbVar14;
                        pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                        pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                      } while (bVar23);
                      bVar25 = false;
                      bVar23 = (!bVar24 && !bVar23) == bVar24;
                      if (!bVar23) {
                        iVar15 = 10;
                        pbVar17 = local_4c;
                        pbVar14 = (byte *)((int)local_94 + -0xf1212);
                        do {
                          if (iVar15 == 0) break;
                          iVar15 = iVar15 + -1;
                          bVar25 = *pbVar17 < *pbVar14;
                          bVar23 = *pbVar17 == *pbVar14;
                          pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                          pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                        } while (bVar23);
                        bVar24 = false;
                        bVar23 = (!bVar25 && !bVar23) == bVar25;
                        if (!bVar23) {
                          iVar15 = 0x12;
                          pbVar17 = local_4c;
                          pbVar14 = (byte *)((int)local_94 + -0xf3a91);
                          do {
                            if (iVar15 == 0) break;
                            iVar15 = iVar15 + -1;
                            bVar24 = *pbVar17 < *pbVar14;
                            bVar23 = *pbVar17 == *pbVar14;
                            pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                          } while (bVar23);
                          if ((!bVar24 && !bVar23) != bVar24) goto LAB_0004f50a;
                        }
                        goto LAB_0004f5da;
                      }
                    }
                  }
                }
              }
            }
LAB_0004f3ac:
            *(undefined1 ***)(puVar21 + -8) = local_34;
            *(byte ***)(puVar21 + -0xc) = local_a0;
            *(uint *)(puVar21 + -0x10) = local_b0;
            *(int **)(puVar21 + -0x14) = local_c0;
                    /* try { // try from 0004f3c8 to 0004f535 has its CatchHandler @ 000504b7 */
            *(undefined4 *)(puVar21 + -0x18) = 0x4f3cd;
            iVar15 = FUN_000c2280();
            local_50 = (byte *)0x0;
            if ((char)local_34[0] != '\0') {
              local_50 = local_9c[3] + iVar15;
            }
            local_b4 = 1;
            puVar21 = puVar21 + -4;
          }
          else {
            if (local_b4 == 1) goto LAB_0004f3ac;
            if (local_b4 == 3) {
LAB_0004f50a:
              uVar11 = param_2[2];
              if (local_90 == (undefined4 *)0x0) {
                *(undefined4 **)(puVar21 + -0x10) = local_a4;
                *(undefined4 *)(puVar21 + -0x14) = uVar11;
                    /* try { // try from 0004f948 to 0004f98c has its CatchHandler @ 000504b7 */
                *(undefined4 *)(puVar21 + -0x18) = 0x4f94d;
                uVar13 = FUN_000c62d0();
                *(undefined ***)(puVar21 + -0x14) = local_94 + -0x3cdfa;
                *(undefined4 *)(puVar21 + -0x18) = 0x4f965;
                uVar12 = gettext();
                *(undefined4 **)(puVar21 + -0xc) = local_a4;
                *(undefined4 *)(puVar21 + -0x10) = uVar13;
                *(undefined4 *)(puVar21 + -0x14) = uVar12;
                *(int *)(puVar21 + -0x18) = (int)local_b8 >> 0x1f;
                *(uint *)(puVar21 + -0x1c) = local_b8;
                *(int *)(puVar21 + -0x20) = local_a8;
                *(undefined4 **)(puVar21 + -0x24) = param_2;
                *(undefined4 *)(puVar21 + -0x28) = 0x4f98d;
                FUN_00082e10();
                puVar20 = puVar21 + -4;
              }
              else {
                *(undefined4 **)(puVar21 + -0x10) = local_90;
                *(undefined1 ***)(puVar21 + -0x14) = local_34;
                *(undefined4 *)(puVar21 + -0x18) = 0x4f536;
                FUN_0014f9f0();
                puVar6 = local_34[0];
                *(undefined ***)(puVar21 + -0x18) = local_94 + -0x3cde4;
                *(undefined4 *)(puVar21 + -0x1c) = 0x4f54d;
                uVar13 = gettext();
                *(undefined1 **)(puVar21 + -0x14) = puVar6;
                *(undefined4 *)(puVar21 + -0x18) = uVar13;
                *(int *)(puVar21 + -0x1c) = (int)local_b8 >> 0x1f;
                *(uint *)(puVar21 + -0x20) = local_b8;
                *(int *)(puVar21 + -0x24) = local_a8;
                *(undefined4 **)(puVar21 + -0x28) = param_2;
                    /* try { // try from 0004f56b to 0004f56f has its CatchHandler @ 000504b0 */
                *(undefined4 *)(puVar21 + -0x2c) = 0x4f570;
                FUN_00082e10();
                puVar20 = puVar21 + -8;
                if (local_34[0] != local_2c) {
                  *(undefined1 **)(puVar21 + -0x18) = local_34[0];
                  *(undefined4 *)(puVar21 + -0x1c) = 0x4f586;
                  FUN_001ac470();
                  puVar20 = puVar21 + -8;
                }
              }
              *(undefined1 **)(puVar20 + -4) = local_82;
              *(undefined1 **)(puVar20 + -8) = local_80;
              *(undefined4 **)(puVar20 + -0xc) = local_a4;
              *(undefined4 *)(puVar20 + -0x10) = uVar11;
                    /* try { // try from 0004f59e to 0004f5a2 has its CatchHandler @ 000504b7 */
              *(undefined4 *)(puVar20 + -0x14) = 0x4f5a3;
              iVar15 = FUN_000c5610();
              if (iVar15 != 0) {
                *(int **)(puVar20 + -8) = &local_7c;
                *(int *)(puVar20 + -0xc) = iVar15;
                *(undefined4 *)(puVar20 + -0x10) = uVar11;
                    /* try { // try from 0004f83f to 0004f87e has its CatchHandler @ 000504b7 */
                *(undefined4 *)(puVar20 + -0x14) = 0x4f844;
                iVar15 = FUN_000c24f0();
                if (local_7c != 0) {
                  *(int *)(puVar20 + -0xc) = local_7c;
                  *(undefined4 *)(puVar20 + -0x10) = uVar11;
                    /* try { // try from 0004ff4b to 0004ff76 has its CatchHandler @ 000504b7 */
                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff50;
                  uVar11 = FUN_000c62d0();
                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdcf;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff68;
                  uVar13 = gettext();
                  *(undefined4 *)(puVar20 + -0xc) = uVar11;
                  *(undefined4 *)(puVar20 + -0x10) = uVar13;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4ff77;
                  FUN_00082930();
                }
                if (iVar15 != 0) {
                  uVar11 = *(undefined4 *)(iVar15 + 4);
                  *(undefined ***)(puVar20 + -0x10) = local_94 + -0x3cdc7;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4f876;
                  uVar13 = gettext();
                  *(undefined4 *)(puVar20 + -0xc) = uVar11;
                  *(undefined4 *)(puVar20 + -0x10) = uVar13;
                  *(undefined4 *)(puVar20 + -0x14) = 0x4f87f;
                  FUN_00082930();
                }
              }
              local_b4 = 3;
            }
            else {
LAB_0004f5da:
              local_b4 = 2;
            }
            local_50 = (byte *)0x0;
            puVar21 = puVar20;
          }
          if (local_5c != (byte *)0x0) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;
            *(undefined4 *)(puVar21 + -0xc) = 0x716;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005010b to 0005010f has its CatchHandler @ 000504b7 */
            *(undefined4 *)(puVar21 + -0x14) = 0x50110;
            FUN_0008b620();
          }
          local_5c = (byte *)0xffffffff;
          if (local_4c != local_44) {
            *(byte **)(puVar21 + -0x10) = local_4c;
            *(undefined4 *)(puVar21 + -0x14) = 0x4f41b;
            FUN_001ac470();
          }
          local_9c = &local_5c;
          uVar10 = param_4[1];
        }
        else {
          if ((param_11 != (int *)0x0) &&
             (local_90 = *(undefined4 **)(*param_11 + local_a8 * 4), local_90 != (undefined4 *)0x0))
          goto LAB_0004e238;
          if (local_a4 < (undefined4 *)local_c0[0x2c]) {
LAB_00050110:
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c70f;
            *(undefined4 *)(puVar21 + -0xc) = 0x17f;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005012c to 00050130 has its CatchHandler @ 000504cc */
            *(undefined **)(puVar21 + -0x14) = &UNK_00050131;
            FUN_0008b620();
          }
          uVar10 = (int)local_a4 - local_c0[0x2c];
          local_90 = (undefined4 *)local_c0[0x30];
          if ((uint)((int)local_90 - local_c0[0x2f] >> 2) <= uVar10) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c6c2;
            *(undefined4 *)(puVar21 + -0xc) = 0x8ad;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar21 + -0x14) = 0x5018a;
            FUN_0008b620();
          }
          local_90 = *(undefined4 **)(local_c0[0x2f] + uVar10 * 4);
          if (local_90 == (undefined4 *)0x0) goto LAB_00050110;
          if ((*(byte *)((int)local_90 + 0x2a) & 0x10) == 0) goto LAB_0004e238;
          *(undefined4 **)(puVar21 + -0xc) = local_90;
          *(undefined4 *)(puVar21 + -0x10) = *param_2;
                    /* try { // try from 0004f790 to 0004f7d8 has its CatchHandler @ 000504cc */
          *(undefined4 *)(puVar21 + -0x14) = 0x4f795;
          local_90 = (undefined4 *)FUN_0014ec30();
          pbVar14 = (byte *)local_90[4];
          pbVar17 = pbVar14 + -1;
          if ((byte *)0xfffffffd < pbVar17) {
            if (local_6c != (byte *)0x0) {
              *(undefined ***)(puVar21 + -8) = local_94 + -0x3c71c;
              *(undefined4 *)(puVar21 + -0xc) = 0x716;
              *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
              *(undefined **)(puVar21 + -0x14) = &UNK_0004f7d9;
              FUN_0008b620();
            }
            goto LAB_0004e24d;
          }
          if ((local_6c != (byte *)0x0) && (local_6c != (byte *)0xfffffffe)) {
            *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;
            *(undefined4 *)(puVar21 + -0xc) = 0x70c;
            *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0005009c to 000500a0 has its CatchHandler @ 000504cc */
            *(undefined4 *)(puVar21 + -0x14) = 0x500a1;
            FUN_0008b620();
          }
LAB_0004f6b0:
          if (pbVar17 == (byte *)0xfffffffd) goto LAB_00050198;
LAB_0004e254:
          local_6c = pbVar14;
          local_60 = local_90[0xc];
          if ((*(byte *)(local_90 + 10) & 0xf) == 6) {
            local_64 = local_64 | 0x20000000;
          }
          else if ((*(byte *)(local_90 + 10) & 0xf) == 10) {
            local_64 = local_64 | 0x40000000;
          }
          if ((char)*(byte *)((int)local_90 + 0x2b) < '\0') {
            if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {
              if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
LAB_0004f318:
                local_b0 = 0;
                local_9c = &local_6c;
                goto LAB_0004f331;
              }
              local_9c = &local_6c;
              uVar10 = param_4[1];
            }
            else {
              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004f318;
              local_9c = &local_6c;
              uVar10 = param_4[1];
            }
          }
          else {
            local_9c = &local_6c;
            uVar10 = param_4[1];
          }
LAB_0004e2a0:
          local_ac = &local_6c;
          local_5c = (byte *)0x0;
          local_58 = 0xffffffff;
          local_54 = 0x80000000;
          local_50 = (byte *)0x0;
        }
        local_c4 = &local_5c;
        local_b0 = uVar10 & 0xff;
        local_c8 = param_9 + local_b8;
        if (((int)local_b8 < 0) || (param_10 <= local_b8)) {
          local_a4 = (undefined4 *)0x0;
          local_78 = param_4;
          if (local_74 != '\0') goto LAB_0004f130;
LAB_0004f1c0:
          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a7f;
          *(undefined4 *)(puVar21 + -0x14) = 0x4f1d7;
          uVar11 = gettext();
          *(uint *)(puVar21 + -0xc) = local_b8;
          *(undefined4 *)(puVar21 + -0x10) = uVar11;
          *(int *)(puVar21 + -0x14) = (int)local_b8 >> 0x1f;
          *(uint *)(puVar21 + -0x18) = local_b8;
          *(int *)(puVar21 + -0x1c) = local_a8;
          *(undefined4 **)(puVar21 + -0x20) = param_2;
          *(undefined4 *)(puVar21 + -0x24) = 0x4f1f4;
          FUN_00082e10();
        }
        else {
          local_a4 = (undefined4 *)(local_b8 + param_8);
          local_78 = param_4;
          if (local_74 == '\0') {
LAB_0004e30b:
            ppuVar19 = local_94;
            if (local_a4 == (undefined4 *)0x0) goto LAB_0004f1c0;
            local_4c = (byte *)0x0;
            local_48 = 0xffffffff;
            local_bc = (int *)param_2[2];
            local_44[0] = 0;
            local_44[1] = 0;
            local_44[2] = 0;
            local_44[3] = 0x80;
            local_40 = 0;
            if (local_90 == (undefined4 *)0x0) {
              if ((*(byte *)((int)local_9c + 0xb) & 0x40) != 0) {
                uVar10 = local_78[1];
                local_a0 = &local_4c;
                *(uint *)(puVar21 + -0xc) = uVar10 >> 8;
                *(int **)(puVar21 + -0x10) = local_bc;
                    /* try { // try from 0004f222 to 0004f2ad has its CatchHandler @ 000504be */
                *(undefined4 *)(puVar21 + -0x14) = 0x4f227;
                cVar7 = FUN_000c21d0();
                if (cVar7 != '\0') {
                  piVar5 = *(int **)(param_1 + 0x18);
                  if (piVar5 == (int *)0x0) {
                    local_a0 = &local_4c;
                    /* try { // try from 0005035e to 000504a8 has its CatchHandler @ 000504be */
                    *(undefined4 *)(puVar21 + -4) = 0x50363;
                    FUN_000494c0();
LAB_00050363:
                    *(undefined ***)(puVar21 + -4) = ppuVar19;
                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c624;
                    *(undefined4 *)(puVar21 + -0xc) = 0xc5;
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3ca3;
                    local_a0 = &local_4c;
                    /* WARNING: Subroutine does not return */
                    *(undefined **)(puVar21 + -0x14) = &UNK_0005038b;
                    FUN_0008b620();
                  }
                  if ((*(byte *)(piVar5 + 7) & 1) == 0) goto LAB_00050363;
                  local_9c = (byte **)piVar5[1];
                  local_98 = piVar5[2];
                  iVar15 = piVar5[0x10];
                  iVar16 = *piVar5;
                  *(int **)(puVar21 + -0x10) = piVar5;
                  local_a0 = &local_4c;
                  pcVar2 = *(code **)(iVar16 + 100);
                  *(undefined4 *)(puVar21 + -0x14) = 0x4f274;
                  iVar16 = (*pcVar2)();
                  uVar18 = (iVar15 + 1) * iVar16;
                  bVar23 = CARRY4(uVar18,(uint)local_9c);
                  local_9c = (byte **)(uVar18 + (int)local_9c);
                  local_98 = local_98 + (uint)bVar23;
                  iVar15 = *local_bc;
                  *(uint *)(puVar21 + -0xc) = uVar10 >> 8;
                  *(int **)(puVar21 + -0x10) = local_bc;
                  local_a0 = &local_4c;
                  pcVar2 = *(code **)(iVar15 + 0xa8);
                  *(undefined4 *)(puVar21 + -0x14) = 0x4f2ae;
                  local_40 = (*pcVar2)();
                  local_40 = local_40 + (int)local_9c;
                  local_9c = &local_4c;
                }
              }
              local_a0 = &local_4c;
              if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004f112. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_94[local_b0 - 0x3cb99] + (int)local_94))();
                return;
              }
LAB_0004e736:
              local_a0 = &local_4c;
              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3ceb6;
              *(undefined4 *)(puVar21 + -0x14) = 0x4e847;
              uVar11 = gettext();
              *(uint *)(puVar21 + -0xc) = local_b0;
              *(undefined4 *)(puVar21 + -0x10) = uVar11;
              uVar10 = *local_78;
              *(undefined4 *)(puVar21 + -0x14) = 0;
              *(uint *)(puVar21 + -0x18) = uVar10;
              *(int *)(puVar21 + -0x1c) = local_a8;
              *(undefined4 **)(puVar21 + -0x20) = param_2;
              *(undefined4 *)(puVar21 + -0x24) = 0x4e867;
              FUN_00082e10();
            }
            else {
              if (((*(byte *)(local_90 + 10) & 0xf) != 10) || (local_b0 != 1)) {
                uVar18 = 0;
                uVar10 = local_b0 - 1;
                if (uVar10 < 0x2b) goto LAB_0004f078;
LAB_0004e381:
                if (local_90[6] != -1) {
                  if ((*(byte *)(local_90 + 10) & 0xf) != 10) {
                    local_a0 = &local_4c;
                    *(uint *)(puVar21 + -0xc) = uVar18;
                    *(undefined4 **)(puVar21 + -0x10) = local_90;
                    /* try { // try from 0004e3bf to 0004eba1 has its CatchHandler @ 000504be */
                    *(undefined4 *)(puVar21 + -0x14) = 0x4e3c4;
                    cVar7 = FUN_00055ca0();
                    if (cVar7 != '\0') goto LAB_0004e466;
                    bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;
                    if (((*(byte *)((int)local_90 + 0x2a) & 7) != 0) ||
                       ((*(byte *)(local_90[2] + 0x2c) & 1) == 0)) {
                      ppuVar19 = local_94 + 0xbc;
                      if (*(int *)(*ppuVar19 + 8) == 0) {
                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                        *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                        local_a0 = &local_4c;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501d7 to 000501db has its CatchHandler @ 000504be */
                        *(undefined4 *)(puVar21 + -0x14) = 0x501dc;
                        FUN_0008b620();
                      }
                      if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x1a25) == '\0') {
LAB_0004e454:
                        if ((uVar18 & 8) != 0) {
                          if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {
                            if ((local_90[3] == 0) &&
                               ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
LAB_0004ebf4:
                              if ((*(byte *)(local_90 + 10) >> 4 != 2) &&
                                 ((*(byte *)(local_90 + 0xb) & 2) == 0)) {
                                if (*(int *)(*ppuVar19 + 8) == 0) {
                                  *(undefined ***)(puVar21 + -4) = ppuVar19;
                                  *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                                  *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                                  *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                                  local_a0 = &local_4c;
                    /* WARNING: Subroutine does not return */
                                  *(undefined1 **)(puVar21 + -0x14) = &LAB_0005044d;
                                  FUN_0008b620();
                                }
                                if (*(char *)(*(int *)(*ppuVar19 + 8) + 0x49b1) == '\0')
                                goto LAB_0004e466;
                              }
                              goto LAB_0004eb80;
                            }
                          }
                          else if ((*(byte *)((int)local_90 + 0x2a) & 7) == 4) goto LAB_0004ebf4;
                        }
                        goto LAB_0004e466;
                      }
                      if (bVar8 == 0) {
                        if ((local_90[3] != 0) || ((*(byte *)((int)local_90 + 0x2b) & 0x20) == 0)) {
LAB_0004e432:
                          *(undefined4 **)(puVar21 + -0x10) = local_90;
                          local_a0 = &local_4c;
                          *(undefined4 *)(puVar21 + -0x14) = 0x4e449;
                          cVar7 = FUN_00055b70();
                          if (cVar7 == '\0') goto LAB_0004e454;
                        }
                      }
                      else if (bVar8 != 4) goto LAB_0004e432;
                    }
                  }
LAB_0004eb80:
                  if (*(int *)(param_1 + 0x18) == 0) {
                    local_a0 = &local_4c;
                    /* try { // try from 00050193 to 00050197 has its CatchHandler @ 000504be */
                    *(undefined4 *)(puVar21 + -4) = 0x50198;
                    FUN_000494c0();
LAB_00050198:
                    ppuVar19 = local_94;
                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c715;
                    *(undefined4 *)(puVar21 + -0xc) = 0x70d;
                    *(int *)(puVar21 + -0x10) = (int)ppuVar19 + -0xf3c7b;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501b4 to 000501b8 has its CatchHandler @ 000504cc */
                    *(undefined4 *)(puVar21 + -0x14) = 0x501b9;
                    FUN_0008b620();
                  }
                  *(undefined4 *)(puVar21 + -4) = 0x4eba2;
                  local_a0 = &local_4c;
                  local_40 = FUN_0004bfa0();
                  local_9c = &local_4c;
                }
LAB_0004e466:
                local_a0 = &local_4c;
                if (local_b0 < 0xfc) {
                    /* WARNING: Could not recover jumptable at 0x0004e487. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                  (*(code *)(local_94[local_b0 - 0x3cc95] + (int)local_94))();
                  return;
                }
                goto LAB_0004e736;
              }
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0xc) = 1;
              *(undefined4 **)(puVar21 + -0x10) = local_90;
              *(undefined4 *)(puVar21 + -0x14) = 0x4ea09;
              cVar7 = FUN_00055ca0();
              puVar4 = local_90;
              if (cVar7 == '\0') {
LAB_0004f070:
                uVar10 = 0;
LAB_0004f078:
                uVar18 = (uint)*(char *)((int)local_94 + (uVar10 - 0xf2040));
                goto LAB_0004e381;
              }
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0xc) = 0;
              *(undefined4 **)(puVar21 + -0x10) = local_90;
              *(undefined4 *)(puVar21 + -0x14) = 0x4ea2e;
              cVar7 = FUN_00055ed0();
              if (cVar7 == '\0') goto LAB_0004f070;
              if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 0) {
                if ((*(byte *)((int)puVar4 + 0x2a) & 7) != 4) goto LAB_0004ea6a;
                goto LAB_0004f070;
              }
              if (((*(byte *)(puVar4[2] + 0x2c) & 1) != 0) ||
                 ((puVar4[3] == 0 && ((*(byte *)((int)puVar4 + 0x2b) & 0x20) != 0))))
              goto LAB_0004f070;
LAB_0004ea6a:
              *(undefined4 **)(puVar21 + -0x10) = local_90;
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0x14) = 0x4ea81;
              cVar7 = FUN_00055b70();
              if (cVar7 != '\0') goto LAB_0004f070;
              local_a0 = &local_4c;
              *(undefined4 *)(puVar21 + -0x10) = param_6;
              *(undefined4 *)(puVar21 + -0x14) = 0x4eab3;
              cVar7 = FUN_0004c1a0();
              puVar4 = local_a4;
              if (cVar7 != '\0') {
                *(undefined4 *)(puVar21 + -8) = *local_a4;
                *(int **)(puVar21 + -0xc) = local_bc;
                *(byte ***)(puVar21 + -0x10) = local_9c;
                *(undefined4 *)(puVar21 + -0x14) = 0x4eada;
                uVar11 = FUN_00056220();
                *puVar4 = uVar11;
              }
            }
            *(byte ***)(puVar21 + -0x10) = local_a0;
            *(undefined4 *)(puVar21 + -0x14) = 0x4e4c6;
            FUN_00056330();
            if (local_90 != (undefined4 *)0x0) {
              uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);
              uVar10 = uVar18 & 7;
              if ((*(byte *)((int)local_90 + 0x2a) & 7) == 0) {
                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
LAB_0004ecc9:
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));
                  if ((*(byte *)(local_90 + 10) >> 4 != 2) && ((*(byte *)(local_90 + 0xb) & 2) == 0)
                     ) {
                    iVar15 = *(int *)(local_94[0xbc] + 8);
                    if (iVar15 == 0) {
                      *(uint *)(puVar21 + -4) = uVar18;
                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                      *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050296 to 0005029a has its CatchHandler @ 000504dc */
                      *(undefined4 *)(puVar21 + -0x14) = 0x5029b;
                      FUN_0008b620();
                    }
                    if (*(char *)(iVar15 + 0x49b1) == '\0') {
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                      ppuVar19 = local_94 + 0xbc;
                      if (-1 < (char)bVar8) goto LAB_0004ed70;
                      if ((char)uVar10 == '\0') {
                        ppuVar19 = local_94 + -0xba878;
                        goto LAB_0004ed40;
                      }
LAB_0004f8f7:
                      bVar1 = *(byte *)((int)local_90 + 0x29);
                      local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar1);
                      bVar9 = bVar1 & 3;
                      if ((bVar1 & 3) != 0) {
                        uVar10 = uVar18 & 7;
                        goto LAB_0004eee0;
                      }
                      goto LAB_0004e538;
                    }
                  }
LAB_0004ef40:
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));
                  bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
LAB_0004eeb3:
                  if (bVar9 == 0) goto LAB_0004efaf;
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x2a));
                  bVar8 = *(byte *)((int)local_90 + 0x2a) & 7;
                  uVar10 = (uint)bVar8;
                  if (bVar8 != 0) goto LAB_0004eee0;
                }
                else {
                  ppuVar19 = local_94 + -0xba878;
                  ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);
                  if (ppuVar3 != ppuVar19) {
                    *(int **)(puVar21 + -0x10) = (int *)local_90[2];
                    /* try { // try from 0004f894 to 0004f895 has its CatchHandler @ 000504dc */
                    *(undefined4 *)(puVar21 + -0x14) = 0x4f896;
                    iVar15 = (*(code *)ppuVar3)();
                    if (iVar15 == 0) goto LAB_0004ef40;
                    uVar18 = (uint)*(byte *)((int)local_90 + 0x2a);
                    uVar10 = uVar18 & 7;
                    if ((*(byte *)((int)local_90 + 0x2a) & 7) != 0) {
                      if ((char)uVar10 == '\x04') goto LAB_0004ecc9;
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                      if (-1 < (char)bVar8) goto LAB_0004f8c5;
                      goto LAB_0004f8f7;
                    }
                    if (local_90[3] == 0) {
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                      if ((bVar8 & 0x20) != 0) goto LAB_0004ecc9;
                    }
                    else {
                      bVar8 = *(byte *)((int)local_90 + 0x2b);
                    }
                    if ((char)bVar8 < '\0') {
LAB_0004ed40:
                      ppuVar3 = *(undefined ***)(*(int *)local_90[2] + 0x14);
                      if (ppuVar3 == ppuVar19) goto LAB_0004e51b;
                      *(int **)(puVar21 + -0x10) = (int *)local_90[2];
                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed5c;
                      iVar15 = (*(code *)ppuVar3)();
                      ppuVar19 = local_e4;
                      if (iVar15 != 0) goto LAB_0004ed70;
                    }
                    else {
LAB_0004f8c5:
                      ppuVar19 = local_94 + 0xbc;
LAB_0004ed70:
                      piVar5 = *(int **)(*ppuVar19 + 0xc);
                      if (piVar5 == (int *)0x0) {
                        *(undefined ***)(puVar21 + -8) = local_94 + -0x3c759;
                        *(undefined4 *)(puVar21 + -0xc) = 0x69;
                        *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000501f5 to 00050217 has its CatchHandler @ 000504dc */
                        *(undefined4 *)(puVar21 + -0x14) = 0x501fa;
                        FUN_0008b620();
                      }
                      iVar15 = *piVar5;
                      *(undefined4 **)(puVar21 + -0xc) = local_90;
                      *(int **)(puVar21 + -0x10) = piVar5;
                      pcVar2 = *(code **)(iVar15 + 0x1c);
                      *(undefined4 *)(puVar21 + -0x14) = 0x4ed8c;
                      cVar7 = (*pcVar2)();
                      puVar4 = local_90;
                      if (cVar7 == '\0') {
                        iVar15 = *(int *)(*ppuVar19 + 8);
                        if (iVar15 == 0) {
                          *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                          *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                          *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                          *(undefined1 **)(puVar21 + -0x14) = &LAB_00050218;
                          FUN_0008b620();
                        }
                        pbVar17 = *(byte **)(iVar15 + 0x42e4);
                        bVar23 = false;
                        bVar25 = pbVar17 == (byte *)0x0;
                        if (bVar25) {
                          local_9c = (byte **)CONCAT31(local_9c._1_3_,
                                                       *(byte *)((int)local_90 + 0x29));
                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
LAB_0004ee51:
                          if ((bVar9 == 2) ||
                             ((*(char *)(iVar15 + 0x1a25) == '\0' ||
                              (*(char *)(iVar15 + 0x4eb5) != '\0')))) {
LAB_0004ee67:
                            *(int *)(puVar21 + -0x10) = (int)local_b8 >> 0x1f;
                            *(uint *)(puVar21 + -0x14) = local_b8;
                            *(int *)(puVar21 + -0x18) = local_a8;
                            *(undefined4 **)(puVar21 + -0x1c) = param_2;
                            *(undefined4 **)(puVar21 + -0x20) = local_90;
                            *(undefined4 *)(puVar21 + -0x24) = 0x4ee8e;
                            FUN_000833b0();
                            bVar8 = *(byte *)((int)puVar4 + 0x2b);
                            goto LAB_0004e538;
                          }
                        }
                        else {
                          iVar16 = 0xb;
                          pbVar14 = pbVar17;
                          pbVar22 = (byte *)((int)local_94 + -0xf8fa6);
                          do {
                            if (iVar16 == 0) break;
                            iVar16 = iVar16 + -1;
                            bVar23 = *pbVar14 < *pbVar22;
                            bVar25 = *pbVar14 == *pbVar22;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                          } while (bVar25);
                          bVar24 = false;
                          bVar23 = (!bVar23 && !bVar25) == bVar23;
                          if (bVar23) goto LAB_0004eea0;
                          iVar16 = 0xb;
                          pbVar14 = pbVar17;
                          pbVar22 = (byte *)((int)local_94 + -0xf8f9b);
                          do {
                            if (iVar16 == 0) break;
                            iVar16 = iVar16 + -1;
                            bVar24 = *pbVar14 < *pbVar22;
                            bVar23 = *pbVar14 == *pbVar22;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                          } while (bVar23);
                          bVar25 = false;
                          bVar23 = (!bVar24 && !bVar23) == bVar24;
                          if (bVar23) goto LAB_0004ee67;
                          iVar16 = 0x17;
                          pbVar14 = pbVar17;
                          ppuVar19 = local_94 + -0x3e3e4;
                          do {
                            if (iVar16 == 0) break;
                            iVar16 = iVar16 + -1;
                            bVar25 = *pbVar14 < *(byte *)ppuVar19;
                            bVar23 = *pbVar14 == *(byte *)ppuVar19;
                            pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar26 * -2 + 1);
                          } while (bVar23);
                          local_9c = (byte **)CONCAT31(local_9c._1_3_,
                                                       *(byte *)((int)local_90 + 0x29));
                          bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
                          bVar23 = (!bVar25 && !bVar23) == bVar25;
                          if ((!bVar23) ||
                             (bVar23 = (*(byte *)((int)local_90 + 0x2b) & 1) == 0, !bVar23)) {
                            bVar25 = false;
                            iVar16 = 0x16;
                            pbVar14 = (byte *)((int)local_94 + -0xf8f79);
                            do {
                              if (iVar16 == 0) break;
                              iVar16 = iVar16 + -1;
                              bVar25 = *pbVar17 < *pbVar14;
                              bVar23 = *pbVar17 == *pbVar14;
                              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
                              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
                            } while (bVar23);
                            if (((!bVar25 && !bVar23) != bVar25) ||
                               (*(char *)((int)local_90 + 0x2a) < '\0')) goto LAB_0004ee51;
                          }
                        }
                        goto LAB_0004eeb3;
                      }
                    }
LAB_0004eea0:
                    local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)((int)local_90 + 0x29));
                    bVar9 = *(byte *)((int)local_90 + 0x29) & 3;
                    goto LAB_0004eeb3;
                  }
LAB_0004e51b:
                  bVar8 = *(byte *)((int)local_90 + 0x29);
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);
                  bVar9 = bVar8 & 3;
                  if ((bVar8 & 3) == 0) goto LAB_0004e534;
                  uVar10 = uVar18 & 7;
                }
                if ((local_90[3] == 0) && ((*(byte *)((int)local_90 + 0x2b) & 0x20) != 0)) {
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));
                  if ((*(byte *)(local_90 + 10) >> 4 == 2) || ((*(byte *)(local_90 + 0xb) & 2) != 0)
                     ) goto LAB_0004ec9c;
LAB_0004ef17:
                  if (*(int *)(*local_e0 + 8) == 0) {
                    *(undefined ***)(puVar21 + -4) = local_e0;
                    *(undefined ***)(puVar21 + -8) = local_94 + -0x3c69e;
                    *(undefined4 *)(puVar21 + -0xc) = 0x5c;
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf8d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000500b8 to 000500bc has its CatchHandler @ 000504dc */
                    *(undefined **)(puVar21 + -0x14) = &UNK_000500bd;
                    FUN_0008b620();
                  }
                  if (*(char *)(*(int *)(*local_e0 + 8) + 0x49b1) != '\0') {
                    if ((char)uVar10 != '\0') goto LAB_0004efaf;
                    goto LAB_0004ec9c;
                  }
LAB_0004ef58:
                  if (bVar9 == 2) {
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a5d;
                    *(undefined4 *)(puVar21 + -0x14) = 0x4fcf5;
                    uVar11 = gettext();
                  }
                  else if (bVar9 < 3) {
                    if (bVar9 != 1) {
                      *(uint *)(puVar21 + -4) = uVar10;
                      *(undefined ***)(puVar21 + -8) = local_94 + -0x3c75e;
                      *(undefined4 *)(puVar21 + -0xc) = 0xa4;
                      *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3b27;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00050256 to 0005025a has its CatchHandler @ 000504dc */
                      *(undefined1 **)(puVar21 + -0x14) = &LAB_0005025b;
                      FUN_0008b620();
                    }
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a66;
                    *(undefined4 *)(puVar21 + -0x14) = 0x4efdd;
                    uVar11 = gettext();
                  }
                  else {
                    *(int *)(puVar21 + -0x10) = (int)local_94 + -0xf3a56;
                    *(undefined4 *)(puVar21 + -0x14) = 0x4ef77;
                    uVar11 = gettext();
                  }
                  uVar13 = *local_90;
                  *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cd73;
                  *(undefined4 *)(puVar21 + -0x14) = 0x4ef9b;
                  uVar12 = gettext();
                  *(undefined4 *)(puVar21 + -8) = uVar13;
                  *(undefined4 *)(puVar21 + -0xc) = uVar11;
                  *(undefined4 *)(puVar21 + -0x10) = uVar12;
                  *(undefined4 *)(puVar21 + -0x14) = 0x4efac;
                  FUN_000828d0();
                  goto LAB_0004efaf;
                }
LAB_0004ec9c:
                if ((*(byte *)(local_90[2] + 0x2c) & 1) != 0) goto LAB_0004ef58;
                bVar8 = *(byte *)((int)local_90 + 0x2b);
              }
              else {
                if ((char)uVar10 == '\x04') goto LAB_0004ecc9;
                bVar8 = *(byte *)((int)local_90 + 0x29);
                local_9c = (byte **)CONCAT31(local_9c._1_3_,bVar8);
                bVar9 = bVar8 & 3;
                if ((bVar8 & 3) == 0) {
LAB_0004e534:
                  bVar8 = *(byte *)((int)local_90 + 0x2b);
                  goto LAB_0004e538;
                }
LAB_0004eee0:
                if ((char)uVar10 == '\x04') {
                  local_9c = (byte **)CONCAT31(local_9c._1_3_,*(byte *)(local_90 + 10));
                  if (*(byte *)(local_90 + 10) >> 4 != 2) {
                    if ((*(byte *)(local_90 + 0xb) & 2) == 0) goto LAB_0004ef17;
                    bVar8 = *(byte *)((int)local_90 + 0x2b);
                    goto LAB_0004e538;
                  }
                }
LAB_0004efaf:
                bVar8 = *(byte *)((int)local_90 + 0x2b);
              }
LAB_0004e538:
              if ((bVar8 & 4) != 0) {
                *(int *)(puVar21 + -0xc) = (int)local_b8 >> 0x1f;
                *(uint *)(puVar21 + -0x10) = local_b8;
                *(int *)(puVar21 + -0x14) = local_a8;
                puVar4 = (undefined4 *)*param_2;
                *(undefined4 **)(puVar21 + -0x18) = param_2;
                *(undefined4 **)(puVar21 + -0x1c) = local_90;
                *(undefined4 **)(puVar21 + -0x20) = puVar4 + 0x40;
                    /* try { // try from 0004ec72 to 0004efab has its CatchHandler @ 000504dc */
                *(undefined4 *)(puVar21 + -0x24) = 0x4ec77;
                local_90 = puVar4;
                FUN_001524d0();
              }
            }
          }
          else {
LAB_0004f130:
            local_78 = param_4;
            if (((local_b0 - 2 & 0xfffffffd) != 0) && (local_b0 != 0x2b)) {
LAB_0004f16b:
              *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;
              *(undefined4 *)(puVar21 + -0x14) = 0x4f182;
              uVar11 = gettext();
              *(undefined4 *)(puVar21 + -0x10) = uVar11;
              uVar10 = *local_78;
              *(undefined4 *)(puVar21 + -0x14) = 0;
              *(uint *)(puVar21 + -0x18) = uVar10;
              *(int *)(puVar21 + -0x1c) = local_a8;
              *(undefined4 **)(puVar21 + -0x20) = param_2;
                    /* try { // try from 0004f197 to 0004f1f3 has its CatchHandler @ 000504dc */
              *(undefined4 *)(puVar21 + -0x24) = 0x4f19c;
              FUN_00082e10();
              local_74 = '\0';
              goto LAB_0004e30b;
            }
            bVar23 = false;
            bVar25 = local_90 == (undefined4 *)0x0;
            if (bVar25) goto LAB_0004f16b;
            iVar15 = 0x10;
            pbVar17 = (byte *)*local_90;
            pbVar14 = (byte *)((int)local_94 + -0xf3c55);
            do {
              if (iVar15 == 0) break;
              iVar15 = iVar15 + -1;
              bVar23 = *pbVar17 < *pbVar14;
              bVar25 = *pbVar17 == *pbVar14;
              pbVar17 = pbVar17 + (uint)bVar26 * -2 + 1;
              pbVar14 = pbVar14 + (uint)bVar26 * -2 + 1;
            } while (bVar25);
            if ((!bVar23 && !bVar25) != bVar23) goto LAB_0004f16b;
            local_74 = '\0';
          }
        }
        *(byte ***)(puVar21 + -0x10) = local_c4;
        *(undefined4 *)(puVar21 + -0x14) = 0x4e54f;
        FUN_00056330();
        *(byte ***)(puVar21 + -0x10) = local_ac;
        *(undefined4 *)(puVar21 + -0x14) = 0x4e55b;
        FUN_00056330();
      }
      else {
        *(uint *)(puVar21 + -4) = local_b8;
        *(undefined4 *)(puVar21 + -8) = param_2[6];
        *(undefined4 *)(puVar21 + -0xc) = param_2[2];
        *(undefined4 *)(puVar21 + -0x10) = param_6;
                    /* try { // try from 0004f6db to 0004f6df has its CatchHandler @ 000504c5 */
        *(undefined4 *)(puVar21 + -0x14) = 0x4f6e0;
        local_b8 = FUN_000efd20();
        if (local_b8 != 0xffffffff) goto LAB_0004e1d8;
      }
      local_a8 = local_a8 + 1;
      param_4 = param_4 + 2;
      puVar6 = puVar21;
    } while (param_5 != local_a8);
  }
  if (local_74 != '\0') {
    *(undefined ***)(puVar21 + -0x10) = local_94 + -0x3cdbe;
    *(undefined4 *)(puVar21 + -0x14) = 0x4ff97;
    uVar11 = gettext();
    *(undefined4 *)(puVar21 + -0x10) = uVar11;
    *(undefined4 *)(puVar21 + -0x14) = 0x4ff9f;
    FUN_000828d0();
    return;
  }
  return;
}

