
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void gc_process_relocs(Target_x86_64<32> * this, Symbol_table * symtab,
   Layout * layout, Sized_relobj_file<32,_false> * object, uint data_shndx, uint sh_type, uchar *
   prelocs, size_t reloc_count, Output_section * output_section, bool needs_special_offset_handling,
   size_t local_symbol_count, uchar * plocal_symbols) */

void __thiscall
anon_unknown.dwarf_32e241::Target_x86_64<32>::gc_process_relocs
          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_false> *object,uint data_shndx,uint sh_type,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          size_t param_10,uchar *plocal_symbols)

{
  _Base_ptr *pp_Var1;
  byte bVar2;
  byte bVar3;
  pointer puVar4;
  pointer ppSVar5;
  _Base_ptr p_Var6;
  Target *pTVar7;
  Garbage_collection *pGVar8;
  undefined4 *puVar9;
  _func_int_varargs *p_Var10;
  char *pcVar11;
  Icf *pIVar12;
  code *pcVar13;
  Parameters *pPVar14;
  size_t sVar15;
  _func_int_varargs **pp_Var16;
  Xindex *pXVar17;
  pointer pcVar18;
  int iVar19;
  _Rb_tree_header *p_Var20;
  _Base_ptr p_Var21;
  _Rb_tree_header *p_Var22;
  char cVar23;
  General_options *extraout_EDX;
  General_options *extraout_EDX_00;
  General_options *pGVar24;
  General_options *extraout_EDX_01;
  _Alloc_hider _Var25;
  General_options *extraout_EDX_02;
  General_options *extraout_EDX_03;
  General_options *extraout_EDX_04;
  General_options *extraout_EDX_05;
  General_options *extraout_EDX_06;
  General_options *extraout_EDX_07;
  Relobj *pRVar26;
  uint uVar27;
  undefined4 *puVar28;
  General_options **ppGVar29;
  Addend_info *unaff_ESI;
  undefined **ppuVar30;
  byte *pbVar31;
  Addend_info *pAVar32;
  uint uVar33;
  _func_int_varargs **pp_Var34;
  _Alloc_hider _Var35;
  bool bVar36;
  bool bVar37;
  bool bVar38;
  byte bVar39;
  pair<std::__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>
  pVar40;
  General_options *pGStack_f0;
  undefined1 auStack_ec [4];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_e8;
  __node_gen_type *local_e4;
  Reloc_addend_size_info *local_e0;
  Addend_info *local_dc;
  Relobj *local_d8;
  size_t local_d4;
  undefined1 *local_d0;
  Offset_info *local_cc;
  Symbol_info *local_c8;
  _func_int_varargs **local_c4;
  mapped_type *local_c0;
  Parameters **local_bc;
  bool local_b7;
  char local_b6;
  byte local_b5;
  General_options *local_b4;
  Output_segment *local_b0;
  pointer local_ac;
  Relobj *local_a8;
  undefined **local_a4;
  Icf *local_a0;
  code *local_9c;
  _Rb_tree_header *local_98;
  undefined1 local_94 [8];
  __node_gen_type __node_gen_2;
  __node_gen_type __node_gen_3;
  __node_gen_type __node_gen_1;
  section_size_type stype;
  section_size_type stype_1;
  __node_gen_type __node_gen;
  Section_id *local_74;
  Icf *local_70;
  Sized_relobj_file<32,_false> *local_6c;
  uint local_68;
  Output_segment *local_64;
  Relobj *local_60;
  Section_id src_id_1;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  pointer local_2c;
  _Alloc_hider local_28;
  
  bVar39 = 0;
  local_a4 = &_GLOBAL_OFFSET_TABLE_;
  if (sh_type == 9) {
    return;
  }
  local_bc = &gold::parameters;
  pGVar24 = gold::parameters->options_;
  if (pGVar24 == (General_options *)0x0) {
    pGStack_f0 = pGVar24;
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (pGVar24->icf_status_ == ICF_NONE) {
    local_e8 = &src_section_name.field_2;
    pGStack_f0 = (General_options *)0x0;
    src_section_name._M_dataplus._M_p = (pointer)local_e8;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    ppGVar29 = (General_options **)auStack_ec;
  }
  else {
    (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_e8 = &src_section_name.field_2;
    ppGVar29 = &pGStack_f0;
  }
  _Var35._M_p = src_section_name._M_dataplus._M_p;
  pPVar14 = *local_bc;
  _Var25._M_p = (pointer)pPVar14->options_;
  if ((General_options *)_Var25._M_p == (General_options *)0x0) {
    *(Parameters **)((int)ppGVar29 + -4) = pPVar14;
    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
               *(char **)((int)ppGVar29 + -8));
  }
  if (((General_options *)_Var25._M_p)->icf_status_ == ICF_NONE) {
LAB_0008e94f:
    local_b6 = '\0';
    local_e0 = (Reloc_addend_size_info *)0x0;
    local_cc = (Offset_info *)0x0;
    local_dc = (Addend_info *)0x0;
    local_c8 = (Symbol_info *)0x0;
    local_c0 = (mapped_type *)0x0;
  }
  else {
    local_a8 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar18 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;
      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));
      pcVar18 = _Var35._M_p + sVar15;
    }
    *(undefined4 *)((int)ppGVar29 + -4) = 0;
    *(pointer *)((int)ppGVar29 + -8) = pcVar18;
    local_a0 = (Icf *)&src_id;
    *(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;
    *(Icf **)((int)ppGVar29 + -0x10) = local_a0;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar19 = 5;
    bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);
    bVar38 = ppGVar29 == (General_options **)0x0;
    ppuVar30 = local_a4 + -0x67293;
    pRVar26 = src_id.first;
    do {
      if (iVar19 == 0) break;
      iVar19 = iVar19 + -1;
      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;
      bVar36 = *(byte *)ppuVar30 < bVar2;
      bVar38 = *(byte *)ppuVar30 == bVar2;
      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);
      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);
    } while (bVar38);
    bVar37 = false;
    bVar36 = (!bVar36 && !bVar38) == bVar36;
    if (!bVar36) {
      iVar19 = 0xf;
      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);
      pRVar26 = src_id.first;
      do {
        unaff_ESI = pAVar32;
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);
        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;
        bVar2 = *(byte *)&(pAVar32->
                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                          )._M_impl._M_start;
        bVar37 = bVar2 < bVar3;
        bVar36 = bVar2 == bVar3;
        pAVar32 = unaff_ESI;
        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);
      } while (bVar36);
      if ((!bVar37 && !bVar36) != bVar37) {
        if (src_id.first == local_a8) {
          pPVar14 = *local_bc;
          _Var25._M_p = (pointer)src_id.first;
        }
        else {
          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;
          operator_delete(*(void **)((int)ppGVar29 + -0x10));
          pPVar14 = *local_bc;
          _Var25._M_p = (pointer)extraout_EDX_07;
        }
        goto LAB_0008e94f;
      }
    }
    if (src_id.first != local_a8) {
      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;
      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;
      operator_delete(*(void **)((int)ppGVar29 + -0x10));
    }
    *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_a0 = symtab->icf_;
    *(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;
    local_c0 = std::__detail::
               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));
    local_c8 = &local_c0->symbol_info;
    unaff_ESI = &local_c0->addend_info;
    local_e0 = &local_c0->reloc_addend_size_info;
    local_dc = unaff_ESI;
    local_cc = &local_c0->offset_info;
    pPVar14 = *local_bc;
    local_b6 = '\x01';
    _Var25._M_p = (pointer)extraout_EDX_06;
  }
  if (pPVar14->options_ == (General_options *)0x0) {
    *(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI;
    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
               *(char **)((int)ppGVar29 + -8));
  }
  local_b7 = false;
  if (pPVar14->options_->icf_status_ == ICF_SAFE) {
    *(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b;
    local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers
                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10));
    bVar36 = false;
    bVar38 = !local_b7;
    _Var25._M_p = (pointer)extraout_EDX_05;
    if (!bVar38) {
      iVar19 = 0xc;
      local_b7 = false;
      ppuVar30 = local_a4 + -0x66894;
      _Var25 = src_section_name._M_dataplus;
      do {
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;
        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;
        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);
        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);
      } while (bVar38);
      bVar37 = false;
      bVar36 = (!bVar36 && !bVar38) == bVar36;
      _Var25 = src_section_name._M_dataplus;
      if (!bVar36) {
        iVar19 = 0x11;
        pbVar31 = (byte *)((int)local_a4 + -0x19a243);
        _Var35 = src_section_name._M_dataplus;
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar37 = *pbVar31 < (byte)*_Var35._M_p;
          bVar36 = *pbVar31 == *_Var35._M_p;
          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
        } while (bVar36);
        bVar38 = false;
        bVar36 = (!bVar37 && !bVar36) == bVar37;
        if (!bVar36) {
          iVar19 = 0xc;
          pbVar31 = (byte *)((int)local_a4 + -0x19a231);
          _Var35 = src_section_name._M_dataplus;
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar38 = *pbVar31 < (byte)*_Var35._M_p;
            bVar36 = *pbVar31 == *_Var35._M_p;
            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
          } while (bVar36);
          bVar37 = false;
          bVar36 = (!bVar38 && !bVar36) == bVar38;
          if (!bVar36) {
            iVar19 = 0x11;
            ppuVar30 = local_a4 + -0x66889;
            _Var35 = src_section_name._M_dataplus;
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;
              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;
              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);
              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
            } while (bVar36);
            bVar38 = false;
            bVar36 = (!bVar37 && !bVar36) == bVar37;
            if (!bVar36) {
              iVar19 = 9;
              pbVar31 = (byte *)((int)local_a4 + -0x19a212);
              _Var35 = src_section_name._M_dataplus;
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                bVar38 = *pbVar31 < (byte)*_Var35._M_p;
                bVar36 = *pbVar31 == *_Var35._M_p;
                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
              } while (bVar36);
              local_b7 = (!bVar38 && !bVar36) != bVar38;
            }
          }
        }
      }
    }
  }
  if (reloc_count != 0) {
    local_c4 = (_func_int_varargs **)0x0;
    local_d0 = local_94;
    local_d4 = 0;
    local_e4 = &__node_gen;
    do {
      uVar33 = *(uint *)(prelocs + 4) & 0xff;
      uVar27 = *(uint *)(prelocs + 4) >> 8;
      local_ac = *(pointer *)(prelocs + 8);
      if (uVar27 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)ppGVar29 + -0xc) = 0xea;
          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc;
          gold::do_gold_unreachable
                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                     *(char **)((int)ppGVar29 + -8));
        }
        local_a8 = (Relobj *)(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);
        if (local_a8 < (Relobj *)0xff00) {
LAB_0008eb4e:
          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);
          local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26);
          if (local_b6 != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_a8;
            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;
            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;
            local_a0 = (Icf *)&src_id;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                         **)((int)ppGVar29 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));
            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);
            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;
LAB_0008ebac:
            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));
            goto LAB_0008ea63;
          }
        }
        else {
          if (local_a8 == (Relobj *)0xffff) {
            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;
            if (pXVar17 == (Xindex *)0x0) {
              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                         _vptr_Object;
              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;
              p_Var10 = pp_Var16[0x1b];
              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;
              pXVar17 = (Xindex *)(*p_Var10)();
              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;
            }
            *(uint *)((int)ppGVar29 + -8) = uVar27;
            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;
            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;
                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;
            local_a8 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)ppGVar29 + -0x10),
                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));
            _Var25._M_p = (pointer)extraout_EDX_00;
            goto LAB_0008eb4e;
          }
          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);
          local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);
          if (local_b6 == '\0') goto LAB_0008eae9;
          src_id.first = (Relobj *)0x0;
          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;
          src_id.second = 0;
          local_a0 = (Icf *)&src_id;
                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));
          local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);
          if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;
LAB_0008ea48:
          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
          *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;
          src_id.first = (Relobj *)0x0;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));
LAB_0008ea63:
          src_id.first = pRVar26;
          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;
          local_2c = local_ac;
          src_id.second = 0;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;
          std::
          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
          ::emplace_back<std::pair<long_long_int,_long_long_int>_>
                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));
          src_id.second = 0;
          puVar4 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = *(Relobj **)prelocs;
          if (puVar4 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppGVar29 + -8) = local_a0;
            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;
            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;
            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)
                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),
                       *(ulonglong **)((int)ppGVar29 + -8));
          }
          else {
            *(Relobj **)puVar4 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar4 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar4 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));
          _Var25._M_p = (pointer)extraout_EDX;
          if ((char)local_b0 == '\0') goto LAB_0008eae9;
        }
        if ((local_b7 != false) && ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1)) {
          if ((*local_bc)->options_ == (General_options *)0x0) {
            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;
            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;
            gold::do_gold_unreachable
                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                       *(char **)((int)ppGVar29 + -8));
          }
          if (((*local_bc)->options_->shared_).value == false) {
            if (uVar33 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();
              return;
            }
          }
          else {
            local_a0 = symtab->icf_;
            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);
            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;
            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;
            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;
            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;
            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;
            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;
            local_6c = object;
            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;
            pVar40 = std::
                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                     ::
                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                               ();
            _Var25._M_p = pVar40._4_4_;
            ppGVar29 = (General_options **)((int)ppGVar29 + -4);
          }
        }
        if ((Relobj *)data_shndx != local_a8) {
          local_b0 = (Output_segment *)object;
          puVar28 = ppGVar29;
LAB_0008ee30:
          if ((*local_bc)->options_ == (General_options *)0x0) {
            puVar28[-2] = local_a4 + -0x65b32;
            puVar28[-3] = 0x5c;
            puVar28[-4] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar28[-5] = 0x8f71a;
            gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);
          }
          ppGVar29 = (General_options **)puVar28;
          if (((*local_bc)->options_->gc_sections_).value != false) {
            src_id_1.first = (Relobj *)object;
            p_Var22 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            src_id_1.second = data_shndx;
            dst_id.first = (Relobj *)local_b0;
            dst_id.second = (uint)local_a8;
            p_Var6 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var21 = &p_Var22->_M_header;
            if (p_Var6 == (_Base_ptr)0x0) {
LAB_0008eec0:
              puVar28[-4] = &local_74;
              local_74 = &src_id_1;
              puVar28[-5] = 0x8eedb;
              std::
              _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
              ::
              _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>
                        ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                          *)puVar28[-4],(_Base_ptr)puVar28[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-2],
                         (tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28);
              p_Var20 = local_98;
            }
            else {
              do {
                while ((p_Var20 = (_Rb_tree_header *)p_Var6,
                       object <= (Sized_relobj_file<32,_false> *)
                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&
                       ((object != (Sized_relobj_file<32,_false> *)
                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||
                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {
                  p_Var6 = (p_Var20->_M_header)._M_left;
                  p_Var21 = &p_Var20->_M_header;
                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;
                }
                pp_Var1 = &(p_Var20->_M_header)._M_right;
                p_Var6 = *pp_Var1;
                p_Var20 = (_Rb_tree_header *)p_Var21;
              } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0008eeaa:
              if (((p_Var22 == p_Var20) ||
                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||
                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&
                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;
            }
            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);
            puVar28[-3] = 1;
            puVar28[-4] = 0;
            puVar28[-5] = local_e4;
            puVar28[-6] = &dst_id;
            puVar28[-7] = __node_gen._M_h;
            puVar28[-8] = local_d0;
            puVar28[-9] = 0x8ef07;
            std::
            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
            ::
            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                      ();
            pTVar7 = (*local_bc)->target_;
            if (pTVar7 == (Target *)0x0) {
              puVar28[-3] = local_a4 + -0x65c0e;
              puVar28[-4] = 0x73;
              puVar28[-5] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              puVar28[-6] = 0x8f759;
              gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);
            }
            _Var25._M_p = (pointer)pTVar7->_vptr_Target[0x41];
            if ((General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474)) {
              puVar28[-3] = local_b4;
              puVar28[-4] = local_a8;
              puVar28[-5] = local_b0;
              puVar28[-6] = data_shndx;
              puVar28[-7] = object;
              puVar28[-8] = symtab;
              puVar28[-9] = pTVar7;
              puVar28[-10] = 0x8f0b1;
              (*(code *)_Var25._M_p)();
              _Var25._M_p = (pointer)extraout_EDX_02;
            }
            pp_Var16 = local_c4;
            ppGVar29 = (General_options **)(puVar28 + -1);
            if (local_c4 != (_func_int_varargs **)0x0) {
              local_a8 = (Relobj *)&local_2c;
              pGVar8 = symtab->gc_;
              puVar28[-5] = local_c4;
              local_a0 = (Icf *)&src_id;
              src_id.first = (Relobj *)&local_2c;
              puVar28[-6] = 0x8ef76;
              sVar15 = strlen((char *)puVar28[-5]);
              pIVar12 = local_a0;
              puVar28[-2] = 0;
              puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);
              puVar28[-4] = pp_Var16;
              puVar28[-5] = local_a0;
              puVar28[-6] = 0x8ef8b;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar28[-3] = pIVar12;
              puVar28[-4] = &pGVar8->cident_sections_;
              puVar28[-5] = &local_9c;
              puVar28[-6] = 0x8ef9f;
              std::
              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                      *)puVar28[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar28[-4]);
              pcVar13 = local_9c;
              if (src_id.first != local_a8) {
                puVar28[-6] = src_id.first;
                puVar28[-7] = 0x8efc2;
                operator_delete((void *)puVar28[-6]);
              }
              ppGVar29 = (General_options **)(puVar28 + -2);
              _Var25._M_p = (pointer)symtab->gc_;
              if ((One_option *)pcVar13 !=
                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.
                   option) {
                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special
                          .option.longname.field_2._M_local_buf + 8;
                src_id.first = (Relobj *)object;
                src_id.second = data_shndx;
                p_Var6 = *(_Base_ptr *)
                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).
                                 super_Struct_special.option.longname.field_2 + 0xc);
                p_Var21 = (_Base_ptr)pcVar11;
                if (p_Var6 == (_Base_ptr)0x0) {
LAB_0008f0f8:
                  puVar28[-6] = &local_70;
                  local_70 = local_a0;
                  puVar28[-7] = 0x8f116;
                  std::
                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                  ::
                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>
                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                              *)puVar28[-6],(_Base_ptr)puVar28[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],
                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);
                  p_Var22 = local_98;
                  _Var25._M_p = (pointer)extraout_EDX_03;
                }
                else {
                  do {
                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,
                           object <= (Sized_relobj_file<32,_false> *)
                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&
                           ((object != (Sized_relobj_file<32,_false> *)
                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||
                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {
                      p_Var6 = (p_Var22->_M_header)._M_left;
                      p_Var21 = &p_Var22->_M_header;
                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;
                    }
                    pp_Var1 = &(p_Var22->_M_header)._M_right;
                    p_Var6 = *pp_Var1;
                    p_Var22 = (_Rb_tree_header *)p_Var21;
                  } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0008f022:
                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||
                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||
                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&
                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;
                }
                ppGVar29 = (General_options **)(puVar28 + -2);
                puVar28 = puVar28 + -2;
                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;
                    puVar9 = (undefined4 *)*puVar9) {
                  *(undefined4 *)((int)puVar28 + -0xc) = 1;
                  *(undefined4 *)((int)puVar28 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;
                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;
                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);
                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;
                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;
                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);
                  pVar40 = std::
                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                           ::
                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                                     ();
                  _Var25._M_p = pVar40._4_4_;
                  ppGVar29 = (General_options **)((int)puVar28 + -4);
                  puVar28 = (undefined4 *)((int)puVar28 + -4);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar27 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_0008f237:
          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;
          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;
          gold::do_gold_unreachable
                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                     *(char **)((int)ppGVar29 + -8));
        }
        uVar27 = uVar27 - object->local_symbol_count_;
        pGVar24 = (General_options *)
                  (object->symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        local_a0 = (Icf *)(object->symbols_).
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                          _M_finish;
        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {
          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;
          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;
          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;
          gold::do_gold_unreachable
                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                     *(char **)((int)ppGVar29 + -8));
        }
        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);
        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;
          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)ppGVar29 + -0x10),
                          *(Symbol **)((int)ppGVar29 + -0xc));
          pGVar24 = extraout_EDX_04;
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);
          local_b4 = pGVar24;
          bVar36 = false;
          bVar38 = ((uint)local_b0->output_lists_[3].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_end_of_storage & 1) == 0;
          if (bVar38) {
            local_a8 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);
            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar36 = (byte)pGVar24 < 2;
            bVar38 = (byte)pGVar24 == 2;
            if (bVar38) {
              bVar36 = false;
              bVar38 = local_b7 == false;
              if (!bVar38) {
                if (local_b5 != 0) {
                  pGVar24 = (*local_bc)->options_;
                  if (pGVar24 == (General_options *)0x0) {
                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;
                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;
                    gold::do_gold_unreachable
                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                               *(char **)((int)ppGVar29 + -8));
                  }
                  if (((pGVar24->shared_).value == false) ||
                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {
                    bVar36 = uVar33 < 0x2a;
                    bVar38 = uVar33 == 0x2a;
                    if (uVar33 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();
                      return;
                    }
                    goto _L7547;
                  }
                }
                local_a0 = symtab->icf_;
                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;
                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;
                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;
                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;
                local_64 = local_b0;
                local_60 = local_a8;
                pVar40 = std::
                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                         ::
                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                                   ();
                pGVar24 = pVar40._4_4_;
                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);
                bVar38 = ppGVar29 == (General_options **)0x4;
                ppGVar29 = (General_options **)((int)ppGVar29 + -4);
              }
            }
          }
          else {
            local_b5 = 0;
            local_a8 = (Relobj *)0x0;
            local_b0 = (Output_segment *)0x0;
          }
        }
        else {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b5 = 0;
          local_a8 = (Relobj *)0x0;
          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);
          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);
          bVar38 = local_b4 == (General_options *)0x0;
          local_b0 = (Output_segment *)0x0;
        }
_L7547:
        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar19 = 8;
        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);
        pp_Var34 = pp_Var16;
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar36 = *pbVar31 < *(byte *)pp_Var34;
          bVar38 = *pbVar31 == *(byte *)pp_Var34;
          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);
        } while (bVar38);
        bVar37 = false;
        bVar36 = (!bVar36 && !bVar38) == bVar36;
        if (bVar36) {
          local_c4 = pp_Var16 + 2;
          cVar23 = '\0';
        }
        else {
          iVar19 = 7;
          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);
          pp_Var34 = pp_Var16;
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar37 = *pbVar31 < *(byte *)pp_Var34;
            bVar36 = *pbVar31 == *(byte *)pp_Var34;
            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);
          } while (bVar36);
          cVar23 = (!bVar37 && !bVar36) - bVar37;
          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);
          if (cVar23 != '\0') {
            pp_Var16 = local_c4;
          }
          local_c4 = pp_Var16;
        }
        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);
        if (local_b6 != '\0') {
          if (local_b5 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_b0;
            src_id.second = (uint)local_a8;
          }
          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;
          local_a0 = (Icf *)&src_id;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));
          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                    _M_impl._M_finish;
          if (ppSVar5 ==
              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;
            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;
            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),
                       *(Symbol ***)((int)ppGVar29 + -8));
          }
          else {
            *ppSVar5 = (Symbol *)src_id_1.first;
            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar5 + 1;
          }
          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;
          src_id.first = local_d8;
          src_id.second = 0;
          local_2c = local_ac;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;
          std::
          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
          ::emplace_back<std::pair<long_long_int,_long_long_int>_>
                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));
          src_id.second = 0;
          puVar4 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = *(Relobj **)prelocs;
          if (puVar4 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppGVar29 + -8) = local_a0;
            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;
            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;
            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)
                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),
                       *(ulonglong **)((int)ppGVar29 + -8));
          }
          else {
            *(Relobj **)puVar4 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar4 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar4 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));
          _Var25._M_p = (pointer)extraout_EDX_01;
        }
        puVar28 = ppGVar29;
        if (local_b5 != 0) goto LAB_0008ee30;
      }
LAB_0008eae9:
      local_d4 = local_d4 + 1;
      prelocs = prelocs + 0xc;
    } while (reloc_count != local_d4);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)src_section_name._M_dataplus._M_p != local_e8) {
    *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;
    operator_delete(*(void **)((int)ppGVar29 + -0x10));
  }
  return;
}



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

void FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,
                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,
                 uint param_11,int param_12)

{
  code cVar1;
  undefined4 *puVar2;
  byte *pbVar3;
  int iVar4;
  code **ppcVar5;
  size_t sVar6;
  uint uVar7;
  code *pcVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  undefined4 extraout_EDX;
  undefined4 uVar12;
  undefined4 extraout_EDX_00;
  undefined **ppuVar13;
  undefined4 extraout_EDX_01;
  undefined **extraout_EDX_02;
  int extraout_EDX_03;
  undefined4 extraout_EDX_04;
  undefined4 extraout_EDX_05;
  undefined4 extraout_EDX_06;
  code *extraout_EDX_07;
  uint uVar14;
  undefined1 *puVar15;
  int *piVar16;
  code *unaff_ESI;
  int iVar17;
  byte *pbVar18;
  uint uVar19;
  byte *pbVar20;
  code *pcVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  undefined8 uVar26;
  ulonglong uVar27;
  longlong lVar28;
  int iStack_f0;
  undefined1 auStack_ec [4];
  code *local_e8;
  code **local_e4;
  int local_e0;
  code *local_dc;
  code *local_d8;
  int local_d4;
  undefined1 *local_d0;
  int local_cc;
  int local_c8;
  byte *local_c4;
  undefined4 local_c0;
  int *local_bc;
  char local_b7;
  char local_b6;
  byte local_b5;
  code *local_b4;
  code *local_b0;
  uint local_ac;
  code *local_a8;
  undefined **local_a4;
  code **local_a0;
  code *local_9c;
  int local_98;
  undefined1 local_94 [8];
  code **local_8c;
  code **local_88;
  code *local_84 [3];
  code *local_78;
  code **local_74;
  code **local_70;
  code *local_6c;
  uint local_68;
  code *local_64;
  code *local_60;
  code *local_5c;
  code *local_58;
  code *local_54;
  code *local_50;
  code *local_4c [2];
  undefined1 local_44 [16];
  code *local_34;
  code *local_30;
  uint local_2c;
  int local_28;
  
  bVar25 = 0;
  local_a4 = &__DT_PLTGOT;
  if (param_6 == 9) {
    return;
  }
  local_bc = &DAT_005ea7c8;
  iVar17 = *(int *)(DAT_005ea7c8 + 8);
  if (iVar17 == 0) {
    iStack_f0 = iVar17;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(iVar17 + 0x5934) == 0) {
    local_e8 = (code *)local_44;
    iStack_f0 = 0;
    local_4c[0] = local_e8;
    FUN_00072b90(local_4c,"","");
    piVar16 = (int *)auStack_ec;
  }
  else {
    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);
    local_e8 = (code *)local_44;
    piVar16 = &iStack_f0;
  }
  pcVar21 = local_4c[0];
  iVar17 = *local_bc;
  pcVar8 = *(code **)(iVar17 + 8);
  if (pcVar8 == (code *)0x0) {
    *(int *)((int)piVar16 + -4) = iVar17;
    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;
    FUN_002446e0();
  }
  if (*(uint *)(pcVar8 + 0x5934) == 0) {
LAB_0008e94f:
    local_b6 = '\0';
    local_e0 = 0;
    local_cc = 0;
    local_dc = (code *)0x0;
    local_c8 = 0;
    lVar28 = ZEXT48(pcVar8) << 0x20;
  }
  else {
    local_a8 = (code *)&local_2c;
    local_34 = local_a8;
    pcVar8 = (code *)0xffffffff;
    if (local_4c[0] != (code *)0x0) {
      *(code **)((int)piVar16 + -0x10) = local_4c[0];
      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;
      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));
      pcVar8 = pcVar21 + sVar6;
    }
    *(undefined4 *)((int)piVar16 + -4) = 0;
    *(code **)((int)piVar16 + -8) = pcVar8;
    local_a0 = &local_34;
    *(code **)((int)piVar16 + -0xc) = pcVar21;
    *(code ***)((int)piVar16 + -0x10) = local_a0;
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;
    FUN_00072b90();
    iVar17 = 5;
    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);
    bVar24 = piVar16 == (int *)0x0;
    ppuVar13 = local_a4 + -0x67293;
    pcVar8 = local_34;
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;
      bVar24 = *(code *)ppuVar13 == *pcVar8;
      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);
      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
    } while (bVar24);
    bVar23 = false;
    bVar22 = (!bVar22 && !bVar24) == bVar22;
    if (!bVar22) {
      iVar17 = 0xf;
      pcVar8 = (code *)((int)local_a4 + -0x19ca46);
      pcVar21 = local_34;
      do {
        unaff_ESI = pcVar8;
        if (iVar17 == 0) break;
        iVar17 = iVar17 + -1;
        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;
        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;
        bVar22 = *pcVar8 == *pcVar21;
        pcVar8 = unaff_ESI;
        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
      } while (bVar22);
      if ((!bVar23 && !bVar22) != bVar23) {
        if (local_34 == local_a8) {
          iVar17 = *local_bc;
          pcVar8 = local_34;
        }
        else {
          *(code **)((int)piVar16 + -0x10) = local_34;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;
          FUN_003ae080();
          iVar17 = *local_bc;
          pcVar8 = extraout_EDX_07;
        }
        goto LAB_0008e94f;
      }
    }
    if (local_34 != local_a8) {
      *(code **)((int)piVar16 + -0x10) = local_34;
      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;
      FUN_003ae080();
    }
    *(code ***)((int)piVar16 + -0xc) = local_a0;
    local_34 = param_4;
    local_30 = param_5;
    local_a0 = *(code ***)(param_2 + 0x15c);
    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;
    lVar28 = FUN_00074520();
    local_e0 = (int)lVar28;
    local_c8 = local_e0 + 0xc;
    local_cc = local_e0 + 0x24;
    unaff_ESI = (code *)(local_e0 + 0x18);
    local_e0 = local_e0 + 0x30;
    iVar17 = *local_bc;
    local_b6 = '\x01';
    local_dc = unaff_ESI;
  }
  local_c0 = (undefined4)lVar28;
  if (*(int *)(iVar17 + 8) == 0) {
    *(code **)((int)piVar16 + -4) = unaff_ESI;
    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;
    FUN_002446e0();
  }
  local_b7 = '\0';
  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {
    *(undefined4 *)((int)piVar16 + -0x10) = param_1;
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;
    local_b7 = FUN_000752e0();
    bVar22 = false;
    bVar24 = local_b7 == '\0';
    lVar28 = CONCAT44(extraout_EDX_06,local_c0);
    if (!bVar24) {
      iVar17 = 0xc;
      local_b7 = '\0';
      ppuVar13 = local_a4 + -0x66894;
      pcVar8 = local_4c[0];
      do {
        if (iVar17 == 0) break;
        iVar17 = iVar17 + -1;
        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;
        bVar24 = *(code *)ppuVar13 == *pcVar8;
        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);
        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
      } while (bVar24);
      bVar23 = false;
      bVar22 = (!bVar22 && !bVar24) == bVar22;
      lVar28 = CONCAT44(local_4c[0],local_c0);
      if (!bVar22) {
        iVar17 = 0x11;
        pcVar8 = (code *)((int)local_a4 + -0x19a243);
        pcVar21 = local_4c[0];
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;
          bVar22 = *pcVar8 == *pcVar21;
          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
        } while (bVar22);
        bVar24 = false;
        bVar22 = (!bVar23 && !bVar22) == bVar23;
        lVar28 = CONCAT44(local_4c[0],local_c0);
        if (!bVar22) {
          iVar17 = 0xc;
          pcVar8 = (code *)((int)local_a4 + -0x19a231);
          pcVar21 = local_4c[0];
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;
            bVar22 = *pcVar8 == *pcVar21;
            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          bVar23 = false;
          bVar22 = (!bVar24 && !bVar22) == bVar24;
          lVar28 = CONCAT44(local_4c[0],local_c0);
          if (!bVar22) {
            iVar17 = 0x11;
            ppuVar13 = local_a4 + -0x66889;
            pcVar8 = local_4c[0];
            do {
              if (iVar17 == 0) break;
              iVar17 = iVar17 + -1;
              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;
              bVar22 = *(code *)ppuVar13 == *pcVar8;
              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);
              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
            } while (bVar22);
            bVar24 = false;
            bVar22 = (!bVar23 && !bVar22) == bVar23;
            lVar28 = CONCAT44(local_4c[0],local_c0);
            if (!bVar22) {
              iVar17 = 9;
              pcVar8 = (code *)((int)local_a4 + -0x19a212);
              pcVar21 = local_4c[0];
              do {
                if (iVar17 == 0) break;
                iVar17 = iVar17 + -1;
                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;
                bVar22 = *pcVar8 == *pcVar21;
                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
              } while (bVar22);
              local_b7 = (!bVar24 && !bVar22) != bVar24;
              lVar28 = CONCAT44(local_4c[0],local_c0);
            }
          }
        }
      }
    }
  }
  local_c0 = (undefined4)lVar28;
  if (param_8 != 0) {
    local_c4 = (byte *)0x0;
    local_d0 = local_94;
    local_e4 = &local_78;
    local_d4 = 0;
    do {
      local_c0 = (undefined4)lVar28;
      uVar19 = param_7[1] & 0xff;
      uVar14 = (uint)param_7[1] >> 8;
      local_ac = param_7[2];
      if (uVar14 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;
          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;
          FUN_002446e0();
        }
        iVar17 = uVar14 * 0x10 + param_12;
        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);
        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);
        if (local_a8 < (code *)0xff00) {
LAB_0008eb4e:
          local_a8 = (code *)uVar26;
          pcVar8 = *(code **)(iVar17 + 4);
          local_b4 = pcVar8 + local_ac;
          if (local_b6 != '\0') {
            local_34 = param_4;
            local_30 = local_a8;
            local_a0 = &local_34;
            *(code ***)((int)piVar16 + -0xc) = local_a0;
            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;
            FUN_00073b00();
            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);
            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;
LAB_0008ebac:
            *(code ***)((int)piVar16 + -0xc) = local_a0;
            *(int *)((int)piVar16 + -0x10) = local_c8;
            local_34 = (code *)0xffffffff;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;
            FUN_00073ca0();
            goto LAB_0008ea63;
          }
        }
        else {
          if (local_a8 == (code *)0xffff) {
            uVar7 = *(uint *)(param_4 + 0x30);
            if (uVar7 == 0) {
              uVar7 = *(uint *)param_4;
              *(code **)((int)piVar16 + -0x10) = param_4;
              pcVar8 = *(code **)(uVar7 + 0x6c);
              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;
              uVar7 = (*pcVar8)();
              *(uint *)(param_4 + 0x30) = uVar7;
            }
            *(uint *)((int)piVar16 + -8) = uVar14;
            *(code **)((int)piVar16 + -0xc) = param_4;
            *(uint *)((int)piVar16 + -0x10) = uVar7;
                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;
            uVar26 = FUN_0028b7d0();
            goto LAB_0008eb4e;
          }
          pcVar8 = *(code **)(iVar17 + 4);
          local_b4 = pcVar8 + local_ac;
          if (local_b6 == '\0') goto LAB_0008eae9;
          local_a0 = &local_34;
          local_34 = (code *)0x0;
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;
          local_30 = (code *)0x0;
                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;
          FUN_00073b00();
          local_b0 = (code *)((uint)local_b0 & 0xffffff00);
          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;
LAB_0008ea48:
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(int *)((int)piVar16 + -0x10) = local_c8;
          local_34 = (code *)0x0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;
          FUN_00073ca0();
LAB_0008ea63:
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(code **)((int)piVar16 + -0x10) = local_dc;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          local_30 = (code *)0x0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;
          local_34 = pcVar8;
          FUN_00073e70();
          local_30 = (code *)0x0;
          local_34 = (code *)*param_7;
          puVar2 = *(undefined4 **)(local_cc + 4);
          if (puVar2 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)piVar16 + -8) = local_a0;
            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;
            *(int *)((int)piVar16 + -0x10) = local_cc;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;
            FUN_00072a40();
          }
          else {
            *puVar2 = local_34;
            puVar2[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar2 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)piVar16 + -0xc) = &local_54;
          *(int *)((int)piVar16 + -0x10) = local_e0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;
          FUN_00074020();
          uVar26 = CONCAT44(extraout_EDX,local_a8);
          lVar28 = CONCAT44(extraout_EDX,local_c0);
          if ((char)local_b0 == '\0') goto LAB_0008eae9;
        }
        local_a8 = (code *)uVar26;
        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {
          if (*(int *)(*local_bc + 8) == 0) {
            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);
            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;
            FUN_002446e0();
          }
          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {
            if (uVar19 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();
              return;
            }
          }
          else {
            local_a0 = *(code ***)(param_2 + 0x15c);
            local_68 = (uint)*(ushort *)(iVar17 + 0xe);
            *(undefined4 *)((int)piVar16 + -0xc) = 1;
            *(undefined4 *)((int)piVar16 + -0x10) = 0;
            local_8c = local_a0 + 0xd;
            *(code ****)((int)piVar16 + -0x14) = &local_8c;
            *(code ***)((int)piVar16 + -0x18) = &local_6c;
            *(code ***)((int)piVar16 + -0x1c) = local_8c;
            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;
            local_6c = param_4;
            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;
            FUN_00074280();
            uVar26 = CONCAT44(extraout_EDX_04,local_a8);
            piVar16 = (int *)((int)piVar16 + -4);
          }
        }
        local_a8 = (code *)uVar26;
        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);
        if (param_5 != local_a8) {
          local_b0 = param_4;
          puVar15 = (undefined1 *)piVar16;
LAB_0008ee30:
          local_a8 = (code *)uVar26;
          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);
          if (*(int *)(*local_bc + 8) == 0) {
            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)(puVar15 + -0xc) = 0x5c;
            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;
            FUN_002446e0();
          }
          piVar16 = (int *)puVar15;
          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {
            local_5c = param_4;
            iVar17 = *(int *)(param_2 + 0x158) + 0x14;
            local_58 = param_5;
            local_54 = local_b0;
            local_50 = local_a8;
            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);
            iVar9 = iVar17;
            if (iVar4 == 0) {
LAB_0008eec0:
              local_74 = &local_5c;
              *(code ****)(puVar15 + -0x10) = &local_74;
              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;
              FUN_0007da50();
              iVar10 = local_98;
            }
            else {
              do {
                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&
                       ((param_4 != *(code **)(iVar10 + 0x10) ||
                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {
                  iVar4 = *(int *)(iVar10 + 8);
                  iVar9 = iVar10;
                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;
                }
                piVar16 = (int *)(iVar10 + 0xc);
                iVar4 = *piVar16;
                iVar10 = iVar9;
              } while (*piVar16 != 0);
LAB_0008eeaa:
              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))
              goto LAB_0008eec0;
            }
            local_78 = (code *)(iVar10 + 0x18);
            *(undefined4 *)(puVar15 + -0xc) = 1;
            *(undefined4 *)(puVar15 + -0x10) = 0;
            *(code ***)(puVar15 + -0x14) = local_e4;
            *(code ***)(puVar15 + -0x18) = &local_54;
            *(code **)(puVar15 + -0x1c) = local_78;
            *(undefined1 **)(puVar15 + -0x20) = local_d0;
            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;
            FUN_00074340();
            piVar16 = *(int **)(*local_bc + 0xc);
            if (piVar16 == (int *)0x0) {
              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;
              *(undefined4 *)(puVar15 + -0x10) = 0x73;
              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;
              FUN_002446e0();
            }
            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);
            if (ppuVar13 != local_a4 + -0x15e474) {
              *(code **)(puVar15 + -0xc) = local_b4;
              *(code **)(puVar15 + -0x10) = local_a8;
              *(code **)(puVar15 + -0x14) = local_b0;
              *(code **)(puVar15 + -0x18) = param_5;
              *(code **)(puVar15 + -0x1c) = param_4;
              *(int *)(puVar15 + -0x20) = param_2;
              *(int **)(puVar15 + -0x24) = piVar16;
              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;
              (*(code *)ppuVar13)();
              ppuVar13 = extraout_EDX_02;
            }
            pbVar3 = local_c4;
            lVar28 = CONCAT44(ppuVar13,local_c0);
            piVar16 = (int *)(puVar15 + -4);
            if (local_c4 != (byte *)0x0) {
              local_a8 = (code *)&local_2c;
              local_a0 = &local_34;
              iVar17 = *(int *)(param_2 + 0x158);
              *(byte **)(puVar15 + -0x14) = local_c4;
              local_34 = local_a8;
              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;
              sVar6 = strlen(*(char **)(puVar15 + -0x14));
              ppcVar5 = local_a0;
              *(undefined4 *)(puVar15 + -8) = 0;
              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;
              *(byte **)(puVar15 + -0x10) = pbVar3;
              *(code ***)(puVar15 + -0x14) = local_a0;
              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;
              FUN_00072b90();
              *(code ***)(puVar15 + -0xc) = ppcVar5;
              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;
              *(code ***)(puVar15 + -0x14) = &local_9c;
              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;
              FUN_00094bd0();
              pcVar8 = local_9c;
              if (local_34 != local_a8) {
                *(code **)(puVar15 + -0x18) = local_34;
                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;
                FUN_003ae080();
              }
              piVar16 = (int *)(puVar15 + -8);
              iVar17 = *(int *)(param_2 + 0x158);
              lVar28 = CONCAT44(iVar17,local_c0);
              if (pcVar8 != (code *)(iVar17 + 0x48)) {
                local_34 = param_4;
                local_30 = param_5;
                iVar4 = *(int *)(iVar17 + 0x18);
                iVar9 = iVar17 + 0x14;
                if (*(int *)(iVar17 + 0x18) == 0) {
LAB_0008f0f8:
                  *(code ****)(puVar15 + -0x18) = &local_70;
                  local_70 = local_a0;
                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;
                  FUN_0007da50();
                  iVar10 = local_98;
                  iVar17 = extraout_EDX_03;
                }
                else {
                  do {
                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&
                           ((param_4 != *(code **)(iVar10 + 0x10) ||
                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {
                      iVar4 = *(int *)(iVar10 + 8);
                      iVar9 = iVar10;
                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;
                    }
                    piVar16 = (int *)(iVar10 + 0xc);
                    iVar4 = *piVar16;
                    iVar10 = iVar9;
                  } while (*piVar16 != 0);
LAB_0008f022:
                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))
                      ))) goto LAB_0008f0f8;
                }
                lVar28 = CONCAT44(iVar17,local_c0);
                piVar16 = (int *)(puVar15 + -8);
                puVar15 = puVar15 + -8;
                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;
                    puVar2 = (undefined4 *)*puVar2) {
                  *(undefined4 *)(puVar15 + -0xc) = 1;
                  *(undefined4 *)(puVar15 + -0x10) = 0;
                  *(code ***)(puVar15 + -0x14) = local_84;
                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;
                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);
                  *(undefined1 **)(puVar15 + -0x20) = local_d0;
                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;
                  local_84[0] = (code *)(iVar10 + 0x18);
                  FUN_00074340();
                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);
                  piVar16 = (int *)(puVar15 + -4);
                  puVar15 = puVar15 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (uVar14 < *(uint *)(param_4 + 0xb0)) {
          local_5c = (code *)0x0;
LAB_0008f237:
          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;
          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;
          FUN_002446e0();
        }
        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);
        uVar7 = *(uint *)(param_4 + 0xbc);
        local_a0 = *(code ***)(param_4 + 0xc0);
        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {
          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;
          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;
          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;
          FUN_002446e0();
        }
        local_5c = *(code **)(uVar7 + uVar14 * 4);
        uVar27 = CONCAT44(uVar7,local_5c);
        if (local_5c == (code *)0x0) goto LAB_0008f237;
        if (((byte)local_5c[0x2a] & 0x10) != 0) {
          *(code **)((int)piVar16 + -0xc) = local_5c;
          *(int *)((int)piVar16 + -0x10) = param_2;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;
          uVar27 = FUN_0034cd90();
        }
        local_5c = (code *)uVar27;
        if (((byte)local_5c[0x2a] & 7) == 0) {
          local_d8 = *(code **)(local_5c + 0x30);
          local_b0 = *(code **)(local_5c + 8);
          local_b4 = local_d8 + local_ac;
          bVar22 = false;
          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;
          if (bVar24) {
            cVar1 = local_5c[0x28];
            local_a8 = *(code **)(local_5c + 0xc);
            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;
            bVar22 = ((byte)cVar1 & 0xf) < 2;
            bVar24 = ((byte)cVar1 & 0xf) == 2;
            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
            if (bVar24) {
              bVar22 = false;
              bVar24 = local_b7 == '\0';
              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
              if (!bVar24) {
                if (local_b5 != 0) {
                  iVar17 = *(int *)(*local_bc + 8);
                  if (iVar17 == 0) {
                    *(code **)((int)piVar16 + -4) = local_5c;
                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;
                    FUN_002446e0();
                  }
                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {
                    bVar22 = uVar19 < 0x2a;
                    bVar24 = uVar19 == 0x2a;
                    uVar27 = CONCAT44(iVar17,local_5c);
                    if (uVar19 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();
                      return;
                    }
                    goto LAB_0008ed18;
                  }
                }
                local_a0 = *(code ***)(param_2 + 0x15c);
                *(undefined4 *)((int)piVar16 + -0xc) = 1;
                *(undefined4 *)((int)piVar16 + -0x10) = 0;
                *(code ****)((int)piVar16 + -0x14) = &local_88;
                *(code ***)((int)piVar16 + -0x18) = &local_64;
                local_88 = local_a0 + 0xd;
                *(code ***)((int)piVar16 + -0x1c) = local_88;
                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;
                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;
                local_64 = local_b0;
                local_60 = local_a8;
                FUN_00074280();
                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);
                bVar24 = piVar16 == (int *)0x4;
                piVar16 = (int *)((int)piVar16 + -4);
                uVar27 = CONCAT44(extraout_EDX_05,local_5c);
              }
            }
          }
          else {
            local_b5 = 0;
            local_a8 = (code *)0x0;
            local_b0 = (code *)0x0;
            uVar27 = CONCAT44(local_b4,local_5c);
          }
        }
        else {
          local_d8 = *(code **)(local_5c + 0x30);
          local_b5 = 0;
          local_a8 = (code *)0x0;
          bVar22 = CARRY4(local_ac,(uint)local_d8);
          local_b4 = local_d8 + local_ac;
          bVar24 = local_b4 == (code *)0x0;
          local_b0 = (code *)0x0;
        }
LAB_0008ed18:
        local_5c = (code *)uVar27;
        pbVar3 = *(byte **)local_5c;
        iVar17 = 8;
        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);
        pbVar20 = pbVar3;
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar24 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar24) == bVar22;
        if (bVar22) {
          cVar11 = '\0';
          pbVar3 = pbVar3 + 8;
        }
        else {
          iVar17 = 7;
          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);
          pbVar20 = pbVar3;
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar23 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          cVar11 = (!bVar23 && !bVar22) - bVar23;
          pbVar3 = pbVar3 + 7;
          if (cVar11 != '\0') {
            pbVar3 = local_c4;
          }
        }
        local_c4 = pbVar3;
        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);
        if (local_b6 != '\0') {
          if (local_b5 == 0) {
            local_34 = (code *)0x0;
            local_30 = (code *)0x0;
          }
          else {
            local_34 = local_b0;
            local_30 = local_a8;
          }
          local_a0 = &local_34;
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;
          FUN_00073b00();
          puVar2 = *(undefined4 **)(local_c8 + 4);
          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {
            *(code ***)((int)piVar16 + -8) = &local_5c;
            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;
            *(int *)((int)piVar16 + -0x10) = local_c8;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;
            FUN_000726c0();
          }
          else {
            *puVar2 = local_5c;
            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;
          }
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(code **)((int)piVar16 + -0x10) = local_dc;
          local_34 = local_d8;
          local_30 = (code *)0x0;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;
          FUN_00073e70();
          local_30 = (code *)0x0;
          local_34 = (code *)*param_7;
          puVar2 = *(undefined4 **)(local_cc + 4);
          if (puVar2 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)piVar16 + -8) = local_a0;
            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;
            *(int *)((int)piVar16 + -0x10) = local_cc;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;
            FUN_00072a40();
          }
          else {
            *puVar2 = local_34;
            puVar2[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar2 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)piVar16 + -0xc) = &local_54;
          *(int *)((int)piVar16 + -0x10) = local_e0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;
          FUN_00074020();
          uVar12 = extraout_EDX_00;
        }
        uVar26 = CONCAT44(uVar12,local_a8);
        lVar28 = CONCAT44(uVar12,local_c0);
        puVar15 = (undefined1 *)piVar16;
        if (local_b5 != 0) goto LAB_0008ee30;
      }
LAB_0008eae9:
      local_c0 = (undefined4)lVar28;
      local_d4 = local_d4 + 1;
      param_7 = param_7 + 3;
    } while (param_8 != local_d4);
  }
  if (local_4c[0] != local_e8) {
    *(code **)((int)piVar16 + -0x10) = local_4c[0];
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;
    FUN_003ae080();
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x55b73b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xdc
CMP dword ptr [EBP + 0x1c],0x9
MOV dword ptr [EBP + 0xffffff60],EAX
JZ 0x0008ebed
LEA EAX,[EAX + 0x7c8]
MOV dword ptr [EBP + 0xffffff48],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008f775
MOV EAX,dword ptr [EAX + 0x5934]
LEA EDX,[EBP + -0x48]
TEST EAX,EAX
JZ 0x0008ebf8
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x4
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH EDX
CALL dword ptr [EAX + 0x40]
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + 0xffffff1c],EAX
ADD ESP,0xc
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x0008f791
MOV EDI,dword ptr [EDX + 0x5934]
TEST EDI,EDI
JNZ 0x0008f510
MOV byte ptr [EBP + 0xffffff4e],0x0
MOV dword ptr [EBP + 0xffffff24],0x0
MOV dword ptr [EBP + 0xffffff38],0x0
MOV dword ptr [EBP + 0xffffff28],0x0
MOV dword ptr [EBP + 0xffffff3c],0x0
MOV dword ptr [EBP + 0xffffff44],0x0
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008f7ad
CMP dword ptr [EAX + 0x5934],0x2
MOV byte ptr [EBP + 0xffffff4d],0x0
JZ 0x0008f450
MOV EBX,dword ptr [EBP + 0x24]
TEST EBX,EBX
JZ 0x0008ebd0
MOV dword ptr [EBP + 0xffffff40],0x0
LEA EAX,[EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff34],EAX
LEA EAX,[EBP + -0x74]
MOV dword ptr [EBP + 0xffffff30],0x0
MOV dword ptr [EBP + 0xffffff20],EAX
JMP 0x0008eb03
CMP EAX,0xffff
JZ 0x0008ec28
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff58]
ADD EAX,EBX
CMP byte ptr [EBP + 0xffffff4e],0x0
MOV dword ptr [EBP + 0xffffff50],EAX
JZ 0x0008eae9
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOVZX EAX,byte ptr [ESI + 0xc]
ADD ESP,0x10
MOV byte ptr [EBP + 0xffffff54],0x0
AND EAX,0xf
CMP AL,0x3
JZ 0x0008ebac
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x30],0x0
CALL 0x00073ca0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x30],EBX
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x28],EAX
SAR EAX,0x1f
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x24],EAX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
MOV EBX,dword ptr [EBP + 0xffffff38]
XOR EDX,EDX
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EBX + 0x4]
MOV dword ptr [EBP + -0x30],EAX
CMP ECX,dword ptr [EBX + 0x8]
JZ 0x0008f2a0
MOV dword ptr [ECX],EAX
ADD ECX,0x8
MOV dword ptr [ECX + -0x4],EDX
MOV dword ptr [EBX + 0x4],ECX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff24]
CALL 0x00074020
ADD ESP,0x10
CMP byte ptr [EBP + 0xffffff54],0x0
JNZ 0x0008f128
ADD dword ptr [EBP + 0xffffff30],0x1
MOV EAX,dword ptr [EBP + 0xffffff30]
ADD dword ptr [EBP + 0x20],0xc
CMP dword ptr [EBP + 0x24],EAX
JZ 0x0008ebd0
MOV EAX,dword ptr [EBP + 0x20]
MOV EAX,dword ptr [EAX + 0x4]
MOV EBX,EAX
MOVZX EDI,AL
MOV EAX,dword ptr [EBP + 0x20]
SHR EBX,0x8
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff58],EAX
CMP dword ptr [EBP + 0x30],EBX
JBE 0x0008ec60
MOV ECX,dword ptr [EBP + 0x34]
TEST ECX,ECX
JZ 0x0008f6db
MOV ESI,EBX
SHL ESI,0x4
ADD ESI,dword ptr [EBP + 0x34]
MOVZX EAX,word ptr [ESI + 0xe]
MOV dword ptr [EBP + 0xffffff5c],EAX
CMP EAX,0xfeff
JA 0x0008e9e0
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff58]
ADD EAX,EBX
CMP byte ptr [EBP + 0xffffff4e],0x0
MOV dword ptr [EBP + 0xffffff50],EAX
JZ 0x0008f128
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOVZX EAX,byte ptr [ESI + 0xc]
ADD ESP,0x10
MOV byte ptr [EBP + 0xffffff54],0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x0008ea48
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x30],0xffffffff
CALL 0x00073ca0
JMP 0x0008ea63
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xffffff1c]
JZ 0x0008ebed
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBP + -0x40]
PUSH 0x0
MOV dword ptr [EBP + 0xffffff1c],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
LEA EAX,[EAX + 0xffeb3b16]
PUSH EAX
PUSH EAX
PUSH EDX
CALL 0x00072b90
ADD ESP,0x10
JMP 0x0008e92e
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x0008f2c0
SUB ESP,0x4
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH dword ptr [EBP + 0x14]
PUSH EAX
CALL 0x0028b7d0
MOV dword ptr [EBP + 0xffffff5c],EAX
ADD ESP,0x10
JMP 0x0008eb4e
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0xb0]
CMP EBX,EAX
JC 0x0008f230
SUB EBX,EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EAX + 0xbc]
MOV EAX,dword ptr [EAX + 0xc0]
MOV dword ptr [EBP + 0xffffff64],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP EBX,EAX
JNC 0x0008f71a
MOV EAX,dword ptr [EDX + EBX*0x4]
MOV dword ptr [EBP + -0x58],EAX
TEST EAX,EAX
JZ 0x0008f237
TEST byte ptr [EAX + 0x2a],0x10
JNZ 0x0008f210
TEST byte ptr [EAX + 0x2a],0x7
JNZ 0x0008f1d0
MOV ECX,dword ptr [EAX + 0x30]
MOV EDX,dword ptr [EBP + 0xffffff58]
MOV ESI,dword ptr [EAX + 0x8]
ADD EDX,ECX
MOV dword ptr [EBP + 0xffffff2c],ECX
MOV dword ptr [EBP + 0xffffff54],ESI
MOV dword ptr [EBP + 0xffffff50],EDX
TEST byte ptr [ESI + 0x2c],0x1
JNZ 0x0008f260
MOVZX EBX,byte ptr [EAX + 0x2b]
MOVZX EDX,byte ptr [EAX + 0x28]
MOV ESI,dword ptr [EAX + 0xc]
SHR BL,0x5
AND EDX,0xf
AND EBX,0x1
MOV dword ptr [EBP + 0xffffff5c],ESI
MOV byte ptr [EBP + 0xffffff4f],BL
CMP DL,0x2
JNZ 0x0008ed18
CMP byte ptr [EBP + 0xffffff4d],0x0
JNZ 0x0008f3c0
LEA ESI,[ESI]
NOP
MOV EDI,dword ptr [EBP + 0xffffff60]
MOV EAX,dword ptr [EAX]
MOV ECX,0x8
LEA ESI,[EDI + 0xffe635da]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0008f0c0
ADD EAX,0x8
MOV dword ptr [EBP + 0xffffff40],EAX
CMP byte ptr [EBP + 0xffffff4e],0x0
JZ 0x0008ee23
CMP byte ptr [EBP + 0xffffff4f],0x0
JNZ 0x0008f280
MOV dword ptr [EBP + -0x30],0x0
MOV dword ptr [EBP + -0x2c],0x0
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOV EDI,dword ptr [EBP + 0xffffff3c]
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x4]
CMP EAX,dword ptr [EDI + 0x8]
JZ 0x0008f380
MOV EDX,dword ptr [EBP + -0x58]
ADD EAX,0x4
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0xffffff2c]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x28],EAX
SAR EAX,0x1f
MOV dword ptr [EBP + -0x24],EAX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
MOV EDI,dword ptr [EBP + 0xffffff38]
XOR EBX,EBX
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EBX
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [EBP + -0x30],ECX
CMP EAX,dword ptr [EDI + 0x8]
JZ 0x0008f3a0
MOV dword ptr [EAX],ECX
ADD EAX,0x8
MOV dword ptr [EAX + -0x4],EBX
MOV dword ptr [EDI + 0x4],EAX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff24]
CALL 0x00074020
ADD ESP,0x10
CMP byte ptr [EBP + 0xffffff4f],0x0
JZ 0x0008eae9
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008f6fc
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x0008eae9
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX + 0x158]
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EBP + 0x18]
LEA EBX,[EDX + 0x14]
MOV ECX,EBX
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EDX + 0x18]
TEST EAX,EAX
JNZ 0x0008ee9b
JMP 0x0008eec0
JNZ 0x0008ee92
MOV ESI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],ESI
JA 0x0008eea3
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008eeaa
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x0008ee88
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0008ee9b
CMP EBX,ECX
JZ 0x0008eec0
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x0008eec0
JNZ 0x0008eee4
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JNC 0x0008eee4
SUB ESP,0xc
LEA EBX,[EBP + -0x70]
LEA EAX,[EBP + -0x58]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + -0x70],EAX
LEA EAX,[EBP + 0xffffff6c]
CALL 0x0007da50
MOV ECX,dword ptr [EBP + 0xffffff6c]
ADD ESP,0x10
SUB ESP,0x8
ADD ECX,0x18
LEA EAX,[EBP + -0x50]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0xffffff20]
PUSH EAX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x74],ECX
CALL 0x00074340
MOV EAX,dword ptr [EBP + 0xffffff48]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0008f73b
MOV EDX,dword ptr [EAX]
MOV EDI,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EDX + 0x104]
LEA ECX,[EDI + 0xffa86e30]
CMP EDX,ECX
JNZ 0x0008f090
MOV EAX,dword ptr [EBP + 0xffffff40]
TEST EAX,EAX
JZ 0x0008eae9
MOV ESI,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
LEA ECX,[EBP + -0x28]
LEA EDI,[EBP + -0x30]
MOV dword ptr [EBP + 0xffffff5c],ECX
MOV ESI,dword ptr [ESI + 0x158]
PUSH EAX
MOV dword ptr [EBP + 0xffffff64],EDI
MOV EDI,EAX
MOV dword ptr [EBP + -0x30],ECX
CALL 0x00039330
ADD ESP,0x10
ADD EAX,EDI
PUSH 0x0
PUSH EAX
PUSH EDI
MOV EDI,dword ptr [EBP + 0xffffff64]
PUSH EDI
CALL 0x00072b90
ADD ESP,0xc
LEA EAX,[EBP + 0xffffff68]
ADD ESI,0x44
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00094bd0
MOV ESI,dword ptr [EBP + 0xffffff68]
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0xc
CMP EAX,dword ptr [EBP + 0xffffff5c]
JZ 0x0008efc5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX + 0x158]
LEA EAX,[EDX + 0x48]
CMP ESI,EAX
JZ 0x0008eae9
MOV EAX,dword ptr [EBP + 0x14]
LEA EBX,[EDX + 0x14]
MOV ECX,EBX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EDX + 0x18]
TEST EAX,EAX
JNZ 0x0008f013
JMP 0x0008f0f8
JNZ 0x0008f00a
MOV EDI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],EDI
JA 0x0008f01b
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008f022
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x0008f000
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0008f013
CMP ECX,EBX
JZ 0x0008f0f8
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x0008f0f8
JNZ 0x0008f048
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JC 0x0008f0f8
LEA ESI,[ESI]
MOV EBX,dword ptr [ESI + 0x30]
LEA EDI,[EBP + -0x80]
LEA ESI,[ECX + 0x18]
TEST EBX,EBX
JZ 0x0008eae9
LEA ESI,[ESI]
SUB ESP,0x8
LEA EAX,[EBX + 0x4]
MOV dword ptr [EBP + -0x80],ESI
PUSH 0x1
PUSH 0x0
PUSH EDI
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + 0xffffff34]
CALL 0x00074340
MOV EBX,dword ptr [EBX]
ADD ESP,0x1c
TEST EBX,EBX
JNZ 0x0008f060
JMP 0x0008eae9
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff50]
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xffffff54]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL EDX
ADD ESP,0x20
JMP 0x0008ef39
MOV ESI,dword ptr [EBP + 0xffffff60]
MOV EDI,EAX
MOV ECX,0x7
LEA ESI,[ESI + 0xffe635e3]
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
ADD EAX,0x7
TEST DL,DL
CMOVNZ EAX,dword ptr [EBP + 0xffffff40]
MOV dword ptr [EBP + 0xffffff40],EAX
JMP 0x0008ed46
SUB ESP,0xc
LEA EBX,[EBP + -0x6c]
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + -0x6c],EAX
LEA EAX,[EBP + 0xffffff6c]
CALL 0x0007da50
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff6c]
JMP 0x0008f048
CMP byte ptr [EBP + 0xffffff4d],0x0
JZ 0x0008f1b0
MOVZX EAX,byte ptr [ESI + 0xc]
AND EAX,0xf
CMP AL,0x1
JZ 0x0008f1b0
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008f759
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x0008f2e0
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x8
LEA EDX,[EBP + 0xffffff78]
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + 0xffffff64],EAX
MOVZX EAX,word ptr [ESI + 0xe]
PUSH 0x1
MOV ESI,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
PUSH 0x0
ADD EAX,0x34
PUSH EDX
LEA EDX,[EBP + -0x68]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x68],ESI
MOV dword ptr [EBP + 0xffffff78],EAX
CALL 0x00074280
ADD ESP,0x1c
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0xffffff5c]
CMP dword ptr [EBP + 0x18],EAX
JZ 0x0008eae9
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xffffff54],EAX
JMP 0x0008ee30
MOV ESI,dword ptr [EAX + 0x30]
MOV EDI,dword ptr [EBP + 0xffffff58]
MOV byte ptr [EBP + 0xffffff4f],0x0
MOV dword ptr [EBP + 0xffffff5c],0x0
ADD EDI,ESI
MOV dword ptr [EBP + 0xffffff2c],ESI
MOV dword ptr [EBP + 0xffffff50],EDI
MOV dword ptr [EBP + 0xffffff54],0x0
JMP 0x0008ed18
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x0034cd90
ADD ESP,0x10
MOV dword ptr [EBP + -0x58],EAX
JMP 0x0008ecad
MOV dword ptr [EBP + -0x58],0x0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe68d64]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0x11c
PUSH EAX
CALL 0x002446e0
MOV byte ptr [EBP + 0xffffff4f],0x0
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV dword ptr [EBP + 0xffffff54],0x0
JMP 0x0008ed18
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV dword ptr [EBP + -0x2c],EAX
JMP 0x0008ed6e
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff64]
PUSH ECX
PUSH dword ptr [EBP + 0xffffff38]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x0008eac0
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x14]
CALL dword ptr [EAX + 0x6c]
MOV EDX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [EDX + 0x30],EAX
JMP 0x0008ec36
CMP EDI,0x2a
JA 0x0008f1b0
MOV EAX,dword ptr [EBP + 0xffffff60]
ADD EAX,dword ptr [EAX + EDI*0x4 + 0xffe68444]
JMP EAX
SUB ESP,0x4
LEA EDX,[EBP + -0x58]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff3c]
CALL 0x000726c0
ADD ESP,0x10
JMP 0x0008eda7
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff64]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff38]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x0008ee07
TEST BL,BL
JZ 0x0008f3f0
MOV ESI,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [ESI]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0008f7c9
CMP byte ptr [EDX + 0x1a25],0x0
JZ 0x0008f610
TEST byte ptr [EAX + 0x29],0x3
JZ 0x0008f610
NOP
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x8
LEA EDX,[EBP + 0xffffff7c]
MOV EAX,dword ptr [EAX + 0x15c]
PUSH 0x1
PUSH 0x0
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBP + 0xffffff54]
PUSH EDX
LEA EDX,[EBP + -0x60]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
PUSH EDX
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD EAX,0x34
PUSH EAX
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + 0xffffff7c],EAX
CALL 0x00074280
ADD ESP,0x1c
MOV EAX,dword ptr [EBP + -0x58]
JMP 0x0008ed18
SUB ESP,0xc
PUSH dword ptr [EBP + 0x8]
CALL 0x000752e0
ADD ESP,0x10
MOV byte ptr [EBP + 0xffffff4d],AL
TEST AL,AL
JZ 0x0008e9a7
MOV EDX,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + 0xffffff60]
MOV ECX,0xc
MOV byte ptr [EBP + 0xffffff4d],0x0
LEA ESI,[EBX + 0xffe65db0]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008e9a7
MOV ECX,0x11
LEA ESI,[EBX + 0xffe65dbd]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008e9a7
MOV ECX,0xc
LEA ESI,[EBX + 0xffe65dcf]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008e9a7
MOV ECX,0x11
LEA ESI,[EBX + 0xffe65ddc]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008e9a7
MOV ECX,0x9
LEA ESI,[EBX + 0xffe65dee]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
SETNZ byte ptr [EBP + 0xffffff4d]
JMP 0x0008e9a7
MOV ESI,dword ptr [EBP + -0x48]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + 0xffffff5c],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,0xffffffff
TEST ESI,ESI
JZ 0x0008f53c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH ESI
CALL 0x00039330
ADD ESP,0x10
ADD EAX,ESI
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x30]
PUSH ESI
PUSH EAX
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00072b90
MOV EDX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + 0xffffff60]
MOV ECX,0x5
ADD ESP,0x10
LEA ESI,[EBX + 0xffe635b4]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008f58f
MOV ECX,0xf
LEA ESI,[EBX + 0xffe635ba]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0008f6b0
CMP EDX,dword ptr [EBP + 0xffffff5c]
JNZ 0x0008f7f2
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + 0xffffff64],EAX
ADD EAX,0x54
PUSH EAX
CALL 0x00074520
LEA ESI,[EAX + 0xc]
LEA EDI,[EAX + 0x24]
MOV dword ptr [EBP + 0xffffff44],EAX
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff3c],ESI
LEA ESI,[EAX + 0x18]
ADD EAX,0x30
MOV dword ptr [EBP + 0xffffff24],EAX
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + 0xffffff28],ESI
MOV dword ptr [EBP + 0xffffff38],EDI
MOV EAX,dword ptr [EAX]
MOV byte ptr [EBP + 0xffffff4e],0x1
JMP 0x0008e988
CMP EDI,0x2a
JA 0x0008ed18
MOV ESI,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [ESI + EDI*0x4 + 0xffe684f0]
ADD EDX,ESI
JMP EDX
CMP EDX,dword ptr [EBP + 0xffffff5c]
JZ 0x0008f7e5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EDX
CALL 0x003ae080
MOV EAX,dword ptr [EBP + 0xffffff48]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
JMP 0x0008e94f
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe68d64]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0xea
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe68f54]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8ad
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe68fc8]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EDX
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EAX
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EAX
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH ESI
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EAX
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EAX,dword ptr [EAX]
JMP 0x0008e94f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EDX
CALL 0x003ae080
ADD ESP,0x10
JMP 0x0008f59b
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "code *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined4 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "int param_12" primitive_type identifier) ))) (compound_statement "{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "code cVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "code **ppcVar5;" type_identifier (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined **extraout_EDX_02;" type_identifier (pointer_declarator "**extraout_EDX_02" * (pointer_declarator "*extraout_EDX_02" * identifier)) ;) (declaration "int extraout_EDX_03;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_05;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_06;" type_identifier identifier ;) (declaration "code *extraout_EDX_07;" type_identifier (pointer_declarator "*extraout_EDX_07" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "code *unaff_ESI;" type_identifier (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "ulonglong uVar27;" type_identifier identifier ;) (declaration "longlong lVar28;" type_identifier identifier ;) (declaration "int iStack_f0;" primitive_type identifier ;) (declaration "undefined1 auStack_ec [4];" type_identifier (array_declarator "auStack_ec [4]" identifier [ number_literal ]) ;) (declaration "code *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "code **local_e4;" type_identifier (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier)) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "code *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "code *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "undefined1 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "int *local_bc;" primitive_type (pointer_declarator "*local_bc" * identifier) ;) (declaration "char local_b7;" primitive_type identifier ;) (declaration "char local_b6;" primitive_type identifier ;) (declaration "byte local_b5;" type_identifier identifier ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "code *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "code *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "code **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "code **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "code **local_88;" type_identifier (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)) ;) (declaration "code *local_84 [3];" type_identifier (pointer_declarator "*local_84 [3]" * (array_declarator "local_84 [3]" identifier [ number_literal ])) ;) (declaration "code *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "code **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "code **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "code *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "code *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "code *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "code *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "code *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "code *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "code *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = &__DT_PLTGOT;" (assignment_expression "local_a4 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_6 == 9) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 9)" ( (binary_expression "param_6 == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_bc = &DAT_005ea7c8;" (assignment_expression "local_bc = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "iVar17 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar17 = *(int *)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_f0 = iVar17;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "iStack_f0 = iVar17;" (assignment_expression "iStack_f0 = iVar17" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x5934) == 0" (pointer_expression "*(int *)(iVar17 + 0x5934)" * (cast_expression "(int *)(iVar17 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x5934)" ( (binary_expression "iVar17 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }" { (expression_statement "local_e8 = (code *)local_44;" (assignment_expression "local_e8 = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_e8;" (assignment_expression "local_4c[0] = local_e8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00072b90(local_4c,"","");" (call_expression "FUN_00072b90(local_4c,"","")" identifier (argument_list "(local_4c,"","")" ( identifier , (string_literal """" " ") , (string_literal """" " ") ))) ;) (expression_statement "piVar16 = (int *)auStack_ec;" (assignment_expression "piVar16 = (int *)auStack_ec" identifier = (cast_expression "(int *)auStack_ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" else (compound_statement "{\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" { (expression_statement "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*(uint *)param_4 + 0x40))" ( (pointer_expression "**(code **)(*(uint *)param_4 + 0x40)" * (pointer_expression "*(code **)(*(uint *)param_4 + 0x40)" * (cast_expression "(code **)(*(uint *)param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(uint *)param_4 + 0x40)" ( (binary_expression "*(uint *)param_4 + 0x40" (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_e8 = (code *)local_44;" (assignment_expression "local_e8 = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar16 = &iStack_f0;" (assignment_expression "piVar16 = &iStack_f0" identifier = (pointer_expression "&iStack_f0" & identifier)) ;) }))) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "pcVar8 = *(code **)(iVar17 + 8);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 8)" identifier = (pointer_expression "*(code **)(iVar17 + 8)" * (cast_expression "(code **)(iVar17 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(pcVar8 == (code *)0x0)" ( (binary_expression "pcVar8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }" { (expression_statement "*(int *)((int)piVar16 + -4) = iVar17;" (assignment_expression "*(int *)((int)piVar16 + -4) = iVar17" (pointer_expression "*(int *)((int)piVar16 + -4)" * (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" if (parenthesized_expression "(*(uint *)(pcVar8 + 0x5934) == 0)" ( (binary_expression "*(uint *)(pcVar8 + 0x5934) == 0" (pointer_expression "*(uint *)(pcVar8 + 0x5934)" * (cast_expression "(uint *)(pcVar8 + 0x5934)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x5934)" ( (binary_expression "pcVar8 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }" { (labeled_statement "LAB_0008e94f:\n    local_b6 = '\0';" statement_identifier : (expression_statement "local_b6 = '\0';" (assignment_expression "local_b6 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "lVar28 = ZEXT48(pcVar8) << 0x20;" (assignment_expression "lVar28 = ZEXT48(pcVar8) << 0x20" identifier = (binary_expression "ZEXT48(pcVar8) << 0x20" (call_expression "ZEXT48(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) << number_literal)) ;) }) (else_clause "else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" else (compound_statement "{\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" { (expression_statement "local_a8 = (code *)&local_2c;" (assignment_expression "local_a8 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "pcVar8 = (code *)0xffffffff;" (assignment_expression "pcVar8 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }" if (parenthesized_expression "(local_4c[0] != (code *)0x0)" ( (binary_expression "local_4c[0] != (code *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f537" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar6 = strlen(*(char **)((int)piVar16 + -0x10));" (assignment_expression "sVar6 = strlen(*(char **)((int)piVar16 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)piVar16 + -0x10))" identifier (argument_list "(*(char **)((int)piVar16 + -0x10))" ( (pointer_expression "*(char **)((int)piVar16 + -0x10)" * (cast_expression "(char **)((int)piVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar8 = pcVar21 + sVar6;" (assignment_expression "pcVar8 = pcVar21 + sVar6" identifier = (binary_expression "pcVar21 + sVar6" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)piVar16 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -4)" * (cast_expression "(undefined4 *)((int)piVar16 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code **)((int)piVar16 + -8) = pcVar8;" (assignment_expression "*(code **)((int)piVar16 + -8) = pcVar8" (pointer_expression "*(code **)((int)piVar16 + -8)" * (cast_expression "(code **)((int)piVar16 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code **)((int)piVar16 + -0xc) = pcVar21;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = pcVar21" (pointer_expression "*(code **)((int)piVar16 + -0xc)" * (cast_expression "(code **)((int)piVar16 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)((int)piVar16 + -0x10) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0x10) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0x10)" * (cast_expression "(code ***)((int)piVar16 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" identifier = number_literal) ;) (expression_statement "bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = piVar16 == (int *)0x0;" (assignment_expression "bVar24 = piVar16 == (int *)0x0" identifier = (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar13 = local_a4 + -0x67293;" (assignment_expression "ppuVar13 = local_a4 + -0x67293" identifier = (binary_expression "local_a4 + -0x67293" identifier + number_literal)) ;) (expression_statement "pcVar8 = local_34;" (assignment_expression "pcVar8 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar8" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar8" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" { (expression_statement "iVar17 = 0xf;" (assignment_expression "iVar17 = 0xf" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19ca46);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19ca46)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19ca46)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca46)" ( (binary_expression "(int)local_a4 + -0x19ca46" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_34;" (assignment_expression "pcVar21 = local_34" identifier = identifier) ;) (do_statement "do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);" do (compound_statement "{\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      }" { (expression_statement "unaff_ESI = pcVar8;" (assignment_expression "unaff_ESI = pcVar8" identifier = identifier) ;) (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar23 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar23 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = unaff_ESI;" (assignment_expression "pcVar8 = unaff_ESI" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" { (if_statement "if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" if (parenthesized_expression "(local_34 == local_a8)" ( (binary_expression "local_34 == local_a8" identifier == identifier) )) (compound_statement "{\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }" { (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "pcVar8 = local_34;" (assignment_expression "pcVar8 = local_34" identifier = identifier) ;) }) (else_clause "else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" else (compound_statement "{\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_34;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_34" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "pcVar8 = extraout_EDX_07;" (assignment_expression "pcVar8 = extraout_EDX_07" identifier = identifier) ;) }))) (goto_statement "goto LAB_0008e94f;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_34;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_34" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f801" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15" (pointer_expression "*(code ***)((int)piVar16 + -0x10)" * (cast_expression "(code ***)((int)piVar16 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a0 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar28 = FUN_00074520();" (assignment_expression "lVar28 = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_e0 = (int)lVar28;" (assignment_expression "local_e0 = (int)lVar28" identifier = (cast_expression "(int)lVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_c8 = local_e0 + 0xc;" (assignment_expression "local_c8 = local_e0 + 0xc" identifier = (binary_expression "local_e0 + 0xc" identifier + number_literal)) ;) (expression_statement "local_cc = local_e0 + 0x24;" (assignment_expression "local_cc = local_e0 + 0x24" identifier = (binary_expression "local_e0 + 0x24" identifier + number_literal)) ;) (expression_statement "unaff_ESI = (code *)(local_e0 + 0x18);" (assignment_expression "unaff_ESI = (code *)(local_e0 + 0x18)" identifier = (cast_expression "(code *)(local_e0 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + 0x18)" ( (binary_expression "local_e0 + 0x18" identifier + number_literal) )))) ;) (expression_statement "local_e0 = local_e0 + 0x30;" (assignment_expression "local_e0 = local_e0 + 0x30" identifier = (binary_expression "local_e0 + 0x30" identifier + number_literal)) ;) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "local_b6 = '\x01';" (assignment_expression "local_b6 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" identifier = identifier) ;) }))) (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 8) == 0)" ( (binary_expression "*(int *)(iVar17 + 8) == 0" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }" { (expression_statement "*(code **)((int)piVar16 + -4) = unaff_ESI;" (assignment_expression "*(code **)((int)piVar16 + -4) = unaff_ESI" (pointer_expression "*(code **)((int)piVar16 + -4)" * (cast_expression "(code **)((int)piVar16 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_b7 = '\0';" (assignment_expression "local_b7 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar17 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar17 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar17 + 8) + 0x5934" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = param_1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b7 = FUN_000752e0();" (assignment_expression "local_b7 = FUN_000752e0()" identifier = (call_expression "FUN_000752e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_b7 == '\0';" (assignment_expression "bVar24 = local_b7 == '\0'" identifier = (binary_expression "local_b7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "lVar28 = CONCAT44(extraout_EDX_06,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX_06,local_c0)" identifier = (call_expression "CONCAT44(extraout_EDX_06,local_c0)" identifier (argument_list "(extraout_EDX_06,local_c0)" ( identifier , identifier )))) ;) (if_statement "if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "local_b7 = '\0';" (assignment_expression "local_b7 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppuVar13 = local_a4 + -0x66894;" (assignment_expression "ppuVar13 = local_a4 + -0x66894" identifier = (binary_expression "local_a4 + -0x66894" identifier + number_literal)) ;) (expression_statement "pcVar8 = local_4c[0];" (assignment_expression "pcVar8 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar8" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar8" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }" { (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a243);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a243)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19a243)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a243)" ( (binary_expression "(int)local_a4 + -0x19a243" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar23 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }" { (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a231);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a231)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19a231)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a231)" ( (binary_expression "(int)local_a4 + -0x19a231" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar24 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar24 && !bVar22) == bVar24;" (assignment_expression "bVar22 = (!bVar24 && !bVar22) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar22) == bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" ( (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }" { (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" identifier = number_literal) ;) (expression_statement "ppuVar13 = local_a4 + -0x66889;" (assignment_expression "ppuVar13 = local_a4 + -0x66889" identifier = (binary_expression "local_a4 + -0x66889" identifier + number_literal)) ;) (expression_statement "pcVar8 = local_4c[0];" (assignment_expression "pcVar8 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar22 = *(code *)ppuVar13 == *pcVar8" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar8" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }" { (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a212);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a212)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19a212)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a212)" ( (binary_expression "(int)local_a4 + -0x19a212" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);" do (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar24 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "local_b7 = (!bVar24 && !bVar22) != bVar24;" (assignment_expression "local_b7 = (!bVar24 && !bVar22) != bVar24" identifier = (binary_expression "(!bVar24 && !bVar22) != bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" ( (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) })) })) })) })) })) })) (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" { (expression_statement "local_c4 = (byte *)0x0;" (assignment_expression "local_c4 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" identifier = identifier) ;) (expression_statement "local_e4 = &local_78;" (assignment_expression "local_e4 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);" do (compound_statement "{\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    }" { (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar19 = param_7[1] & 0xff;" (assignment_expression "uVar19 = param_7[1] & 0xff" identifier = (binary_expression "param_7[1] & 0xff" (subscript_expression "param_7[1]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar14 = (uint)param_7[1] >> 8;" (assignment_expression "uVar14 = (uint)param_7[1] >> 8" identifier = (binary_expression "(uint)param_7[1] >> 8" (cast_expression "(uint)param_7[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_7[1]" identifier [ number_literal ])) >> number_literal)) ;) (expression_statement "local_ac = param_7[2];" (assignment_expression "local_ac = param_7[2]" identifier = (subscript_expression "param_7[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" if (parenthesized_expression "(uVar14 < param_11)" ( (binary_expression "uVar14 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65ca7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar17 = uVar14 * 0x10 + param_12;" (assignment_expression "iVar17 = uVar14 * 0x10 + param_12" identifier = (binary_expression "uVar14 * 0x10 + param_12" (binary_expression "uVar14 * 0x10" identifier * number_literal) + identifier)) ;) (expression_statement "local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);" (assignment_expression "local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe)" identifier = (binary_expression "(code *)(uint)*(ushort *)(iVar17 + 0xe)" (cast_expression "(code *)(uint)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar17 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xe)" ( (binary_expression "iVar17 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);" (assignment_expression "uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8)" identifier (argument_list "((int)((ulonglong)lVar28 >> 0x20),local_a8)" ( (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" if (parenthesized_expression "(local_a8 < (code *)0xff00)" ( (binary_expression "local_a8 < (code *)0xff00" identifier < (cast_expression "(code *)0xff00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }" { (labeled_statement "LAB_0008eb4e:\n          local_a8 = (code *)uVar26;" statement_identifier : (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pcVar8 = *(code **)(iVar17 + 4);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 4)" identifier = (pointer_expression "*(code **)(iVar17 + 4)" * (cast_expression "(code **)(iVar17 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = pcVar8 + local_ac;" (assignment_expression "local_b4 = pcVar8 + local_ac" identifier = (binary_expression "pcVar8 + local_ac" identifier + identifier)) ;) (if_statement "if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }" if (parenthesized_expression "(local_b6 != '\0')" ( (binary_expression "local_b6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = local_a8;" (assignment_expression "local_30 = local_a8" identifier = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_b0 = (code *)CONCAT31(local_b0._1_3_,1);" (assignment_expression "local_b0 = (code *)CONCAT31(local_b0._1_3_,1)" identifier = (cast_expression "(code *)CONCAT31(local_b0._1_3_,1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_b0._1_3_,1)" identifier (argument_list "(local_b0._1_3_,1)" ( (field_expression "local_b0._1_3_" identifier . field_identifier) , number_literal ))))) ;) (if_statement "if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;" if (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" * (cast_expression "(byte *)(iVar17 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0008ea48;" goto statement_identifier ;)) (labeled_statement "LAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0xffffffff;" (assignment_expression "local_34 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0008ea63;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" else (compound_statement "{\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" { (if_statement "if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }" if (parenthesized_expression "(local_a8 == (code *)0xffff)" ( (binary_expression "local_a8 == (code *)0xffff" identifier == (cast_expression "(code *)0xffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }" { (expression_statement "uVar7 = *(uint *)(param_4 + 0x30);" (assignment_expression "uVar7 = *(uint *)(param_4 + 0x30)" identifier = (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }" { (expression_statement "uVar7 = *(uint *)param_4;" (assignment_expression "uVar7 = *(uint *)param_4" identifier = (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(code **)((int)piVar16 + -0x10) = param_4;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = param_4" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = *(code **)(uVar7 + 0x6c);" (assignment_expression "pcVar8 = *(code **)(uVar7 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar7 + 0x6c)" * (cast_expression "(code **)(uVar7 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar7 + 0x6c)" ( (binary_expression "uVar7 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = (*pcVar8)();" (assignment_expression "uVar7 = (*pcVar8)()" identifier = (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(param_4 + 0x30) = uVar7;" (assignment_expression "*(uint *)(param_4 + 0x30) = uVar7" (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)((int)piVar16 + -8) = uVar14;" (assignment_expression "*(uint *)((int)piVar16 + -8) = uVar14" (pointer_expression "*(uint *)((int)piVar16 + -8)" * (cast_expression "(uint *)((int)piVar16 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)piVar16 + -0xc) = param_4;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = param_4" (pointer_expression "*(code **)((int)piVar16 + -0xc)" * (cast_expression "(code **)((int)piVar16 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)piVar16 + -0x10) = uVar7;" (assignment_expression "*(uint *)((int)piVar16 + -0x10) = uVar7" (pointer_expression "*(uint *)((int)piVar16 + -0x10)" * (cast_expression "(uint *)((int)piVar16 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar26 = FUN_0028b7d0();" (assignment_expression "uVar26 = FUN_0028b7d0()" identifier = (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0008eb4e;" goto statement_identifier ;) })) (expression_statement "pcVar8 = *(code **)(iVar17 + 4);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 4)" identifier = (pointer_expression "*(code **)(iVar17 + 4)" * (cast_expression "(code **)(iVar17 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = pcVar8 + local_ac;" (assignment_expression "local_b4 = pcVar8 + local_ac" identifier = (binary_expression "pcVar8 + local_ac" identifier + identifier)) ;) (if_statement "if (local_b6 == '\0') goto LAB_0008eae9;" if (parenthesized_expression "(local_b6 == '\0')" ( (binary_expression "local_b6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008eae9;" goto statement_identifier ;)) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_b0 = (code *)((uint)local_b0 & 0xffffff00);" (assignment_expression "local_b0 = (code *)((uint)local_b0 & 0xffffff00)" identifier = (cast_expression "(code *)((uint)local_b0 & 0xffffff00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_b0 & 0xffffff00)" ( (binary_expression "(uint)local_b0 & 0xffffff00" (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;" if (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" * (cast_expression "(byte *)(iVar17 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0008ebac;" goto statement_identifier ;)) (labeled_statement "LAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(code **)((int)piVar16 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_dc" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = pcVar8;" (assignment_expression "local_34 = pcVar8" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (code *)*param_7;" (assignment_expression "local_34 = (code *)*param_7" identifier = (cast_expression "(code *)*param_7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)piVar16 + -8) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -8) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -8)" * (cast_expression "(code ***)((int)piVar16 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_cc;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_cc" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = local_34;" (assignment_expression "*puVar2 = local_34" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_e0" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar26 = CONCAT44(extraout_EDX,local_a8);" (assignment_expression "uVar26 = CONCAT44(extraout_EDX,local_a8)" identifier = (call_expression "CONCAT44(extraout_EDX,local_a8)" identifier (argument_list "(extraout_EDX,local_a8)" ( identifier , identifier )))) ;) (expression_statement "lVar28 = CONCAT44(extraout_EDX,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX,local_c0)" identifier = (call_expression "CONCAT44(extraout_EDX,local_c0)" identifier (argument_list "(extraout_EDX,local_c0)" ( identifier , identifier )))) ;) (if_statement "if ((char)local_b0 == '\0') goto LAB_0008eae9;" if (parenthesized_expression "((char)local_b0 == '\0')" ( (binary_expression "(char)local_b0 == '\0'" (cast_expression "(char)local_b0" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008eae9;" goto statement_identifier ;)) }))) (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }" if (parenthesized_expression "((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1))" ( (binary_expression "(local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)" (parenthesized_expression "(local_b7 != '\0')" ( (binary_expression "local_b7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" * (cast_expression "(byte *)(iVar17 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }" { (if_statement "if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_bc + 8) == 0)" ( (binary_expression "*(int *)(*local_bc + 8) == 0" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }" { (expression_statement "*(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);" (assignment_expression "*(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20)" (pointer_expression "*(int *)((int)piVar16 + -4)" * (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f775" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_bc + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_bc + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_bc + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_bc + 8) + 0x1a25" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }" { (if_statement "if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }" if (parenthesized_expression "(uVar19 < 0x2b)" ( (binary_expression "uVar19 < 0x2b" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();" (call_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))()" (parenthesized_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))" ( (pointer_expression "*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" * (cast_expression "(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" ( (binary_expression "(int)local_a4 + (int)local_a4[uVar19 - 0x65eef]" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_a4[uVar19 - 0x65eef]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a4[uVar19 - 0x65eef]" identifier [ (binary_expression "uVar19 - 0x65eef" identifier - number_literal) ]))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" else (compound_statement "{\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" { (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "local_68 = (uint)*(ushort *)(iVar17 + 0xe);" (assignment_expression "local_68 = (uint)*(ushort *)(iVar17 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)(iVar17 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar17 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xe)" ( (binary_expression "iVar17 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_8c = local_a0 + 0xd;" (assignment_expression "local_8c = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ****)((int)piVar16 + -0x14) = &local_8c;" (assignment_expression "*(code ****)((int)piVar16 + -0x14) = &local_8c" (pointer_expression "*(code ****)((int)piVar16 + -0x14)" * (cast_expression "(code ****)((int)piVar16 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x18) = &local_6c;" (assignment_expression "*(code ***)((int)piVar16 + -0x18) = &local_6c" (pointer_expression "*(code ***)((int)piVar16 + -0x18)" * (cast_expression "(code ***)((int)piVar16 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x18)" ( (binary_expression "(int)piVar16 + -0x18" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x1c) = local_8c;" (assignment_expression "*(code ***)((int)piVar16 + -0x1c) = local_8c" (pointer_expression "*(code ***)((int)piVar16 + -0x1c)" * (cast_expression "(code ***)((int)piVar16 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x1c)" ( (binary_expression "(int)piVar16 + -0x1c" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)piVar16 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)piVar16 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)piVar16 + -0x20)" * (cast_expression "(undefined1 **)((int)piVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x20)" ( (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_6c = param_4;" (assignment_expression "local_6c = param_4" identifier = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x24)" ( (binary_expression "(int)piVar16 + -0x24" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar26 = CONCAT44(extraout_EDX_04,local_a8);" (assignment_expression "uVar26 = CONCAT44(extraout_EDX_04,local_a8)" identifier = (call_expression "CONCAT44(extraout_EDX_04,local_a8)" identifier (argument_list "(extraout_EDX_04,local_a8)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)((int)piVar16 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar16 + -4)" identifier = (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);" (assignment_expression "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier = (call_expression "CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier (argument_list "((int)((ulonglong)uVar26 >> 0x20),local_c0)" ( (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_5 != local_a8)" ( (binary_expression "param_5 != local_a8" identifier != identifier) )) (compound_statement "{\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_b0 = param_4;" (assignment_expression "local_b0 = param_4" identifier = identifier) ;) (expression_statement "puVar15 = (undefined1 *)piVar16;" (assignment_expression "puVar15 = (undefined1 *)piVar16" identifier = (cast_expression "(undefined1 *)piVar16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0008ee30:\n          local_a8 = (code *)uVar26;" statement_identifier : (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);" (assignment_expression "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier = (call_expression "CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier (argument_list "((int)((ulonglong)uVar26 >> 0x20),local_c0)" ( (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_bc + 8) == 0)" ( (binary_expression "*(int *)(*local_bc + 8) == 0" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f71a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f71a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar16 = (int *)puVar15;" (assignment_expression "piVar16 = (int *)puVar15" identifier = (cast_expression "(int *)puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_bc + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_bc + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_bc + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_bc + 8) + 0x18b1" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158) + 0x14" identifier = (binary_expression "*(int *)(param_2 + 0x158) + 0x14" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_58 = param_5;" (assignment_expression "local_58 = param_5" identifier = identifier) ;) (expression_statement "local_54 = local_b0;" (assignment_expression "local_54 = local_b0" identifier = identifier) ;) (expression_statement "local_50 = local_a8;" (assignment_expression "local_50 = local_a8" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0x158) + 0x18)" * (cast_expression "(int *)(*(int *)(param_2 + 0x158) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x18)" ( (binary_expression "*(int *)(param_2 + 0x158) + 0x18" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar9 = iVar17;" (assignment_expression "iVar9 = iVar17" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }" { (labeled_statement "LAB_0008eec0:\n              local_74 = &local_5c;" statement_identifier : (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;)) (expression_statement "*(code ****)(puVar15 + -0x10) = &local_74;" (assignment_expression "*(code ****)(puVar15 + -0x10) = &local_74" (pointer_expression "*(code ****)(puVar15 + -0x10)" * (cast_expression "(code ****)(puVar15 + -0x10)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8eedb;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8eedb" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" else (compound_statement "{\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" { (do_statement "do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);" do (compound_statement "{\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              }" { (while_statement "while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }" while (parenthesized_expression "((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar4" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 <= *(code **)(iVar10 + 0x14)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }" { (expression_statement "iVar4 = *(int *)(iVar10 + 8);" (assignment_expression "iVar4 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;" if (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" ( (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0008eeaa;" goto statement_identifier ;)) })) (expression_statement "piVar16 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar16 = (int *)(iVar10 + 0xc)" identifier = (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar16 != 0)" ( (binary_expression "*piVar16 != 0" (pointer_expression "*piVar16" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;" statement_identifier : (if_statement "if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;" if (parenthesized_expression "(((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))" ( (binary_expression "((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))))" (parenthesized_expression "((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar17 == iVar10)" ( (binary_expression "iVar17 == iVar10" identifier == identifier) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 < *(code **)(iVar10 + 0x14)" identifier < (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0008eec0;" goto statement_identifier ;))) }))) (expression_statement "local_78 = (code *)(iVar10 + 0x18);" (assignment_expression "local_78 = (code *)(iVar10 + 0x18)" identifier = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = local_e4;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_e4" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar15 + -0x18) = &local_54;" (assignment_expression "*(code ***)(puVar15 + -0x18) = &local_54" (pointer_expression "*(code ***)(puVar15 + -0x18)" * (cast_expression "(code ***)(puVar15 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(code **)(puVar15 + -0x1c) = local_78;" (assignment_expression "*(code **)(puVar15 + -0x1c) = local_78" (pointer_expression "*(code **)(puVar15 + -0x1c)" * (cast_expression "(code **)(puVar15 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8ef07;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8ef07" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar16 = *(int **)(*local_bc + 0xc);" (assignment_expression "piVar16 = *(int **)(*local_bc + 0xc)" identifier = (pointer_expression "*(int **)(*local_bc + 0xc)" * (cast_expression "(int **)(*local_bc + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_bc + 0xc)" ( (binary_expression "*local_bc + 0xc" (pointer_expression "*local_bc" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;" (assignment_expression "*(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e" (pointer_expression "*(undefined ***)(puVar15 + -0xc)" * (cast_expression "(undefined ***)(puVar15 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65c0e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8f759;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8f759" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar13 = *(undefined ***)(*piVar16 + 0x104);" (assignment_expression "ppuVar13 = *(undefined ***)(*piVar16 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar16 + 0x104)" * (cast_expression "(undefined ***)(*piVar16 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar16 + 0x104)" ( (binary_expression "*piVar16 + 0x104" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" if (parenthesized_expression "(ppuVar13 != local_a4 + -0x15e474)" ( (binary_expression "ppuVar13 != local_a4 + -0x15e474" identifier != (binary_expression "local_a4 + -0x15e474" identifier + number_literal)) )) (compound_statement "{\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" { (expression_statement "*(code **)(puVar15 + -0xc) = local_b4;" (assignment_expression "*(code **)(puVar15 + -0xc) = local_b4" (pointer_expression "*(code **)(puVar15 + -0xc)" * (cast_expression "(code **)(puVar15 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x10) = local_a8;" (assignment_expression "*(code **)(puVar15 + -0x10) = local_a8" (pointer_expression "*(code **)(puVar15 + -0x10)" * (cast_expression "(code **)(puVar15 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x14) = local_b0;" (assignment_expression "*(code **)(puVar15 + -0x14) = local_b0" (pointer_expression "*(code **)(puVar15 + -0x14)" * (cast_expression "(code **)(puVar15 + -0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x18) = param_5;" (assignment_expression "*(code **)(puVar15 + -0x18) = param_5" (pointer_expression "*(code **)(puVar15 + -0x18)" * (cast_expression "(code **)(puVar15 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(code **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(code **)(puVar15 + -0x1c)" * (cast_expression "(code **)(puVar15 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_2" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x24) = piVar16;" (assignment_expression "*(int **)(puVar15 + -0x24) = piVar16" (pointer_expression "*(int **)(puVar15 + -0x24)" * (cast_expression "(int **)(puVar15 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = 0x8f0b1" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar13)();" (call_expression "(*(code *)ppuVar13)()" (parenthesized_expression "(*(code *)ppuVar13)" ( (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar13 = extraout_EDX_02;" (assignment_expression "ppuVar13 = extraout_EDX_02" identifier = identifier) ;) })) (expression_statement "pbVar3 = local_c4;" (assignment_expression "pbVar3 = local_c4" identifier = identifier) ;) (expression_statement "lVar28 = CONCAT44(ppuVar13,local_c0);" (assignment_expression "lVar28 = CONCAT44(ppuVar13,local_c0)" identifier = (call_expression "CONCAT44(ppuVar13,local_c0)" identifier (argument_list "(ppuVar13,local_c0)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(puVar15 + -4);" (assignment_expression "piVar16 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (if_statement "if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 != (byte *)0x0)" ( (binary_expression "local_c4 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }" { (expression_statement "local_a8 = (code *)&local_2c;" (assignment_expression "local_a8 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar15 + -0x14) = local_c4;" (assignment_expression "*(byte **)(puVar15 + -0x14) = local_c4" (pointer_expression "*(byte **)(puVar15 + -0x14)" * (cast_expression "(byte **)(puVar15 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef76;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef76" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar6 = strlen(*(char **)(puVar15 + -0x14));" (assignment_expression "sVar6 = strlen(*(char **)(puVar15 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar15 + -0x14))" identifier (argument_list "(*(char **)(puVar15 + -0x14))" ( (pointer_expression "*(char **)(puVar15 + -0x14)" * (cast_expression "(char **)(puVar15 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppcVar5 = local_a0;" (assignment_expression "ppcVar5 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;" (assignment_expression "*(byte **)(puVar15 + -0xc) = pbVar3 + sVar6" (pointer_expression "*(byte **)(puVar15 + -0xc)" * (cast_expression "(byte **)(puVar15 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar3 + sVar6" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar15 + -0x10) = pbVar3;" (assignment_expression "*(byte **)(puVar15 + -0x10) = pbVar3" (pointer_expression "*(byte **)(puVar15 + -0x10)" * (cast_expression "(byte **)(puVar15 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = local_a0;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_a0" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef8b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(code ***)(puVar15 + -0xc) = ppcVar5;" (assignment_expression "*(code ***)(puVar15 + -0xc) = ppcVar5" (pointer_expression "*(code ***)(puVar15 + -0xc)" * (cast_expression "(code ***)(puVar15 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar17 + 0x44;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar17 + 0x44" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar17 + 0x44" identifier + number_literal)) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = &local_9c;" (assignment_expression "*(code ***)(puVar15 + -0x14) = &local_9c" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef9f" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar8 = local_9c;" (assignment_expression "pcVar8 = local_9c" identifier = identifier) ;) (if_statement "if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }" { (expression_statement "*(code **)(puVar15 + -0x18) = local_34;" (assignment_expression "*(code **)(puVar15 + -0x18) = local_34" (pointer_expression "*(code **)(puVar15 + -0x18)" * (cast_expression "(code **)(puVar15 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0x8efc2" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar16 = (int *)(puVar15 + -8);" (assignment_expression "piVar16 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "lVar28 = CONCAT44(iVar17,local_c0);" (assignment_expression "lVar28 = CONCAT44(iVar17,local_c0)" identifier = (call_expression "CONCAT44(iVar17,local_c0)" identifier (argument_list "(iVar17,local_c0)" ( identifier , identifier )))) ;) (if_statement "if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }" if (parenthesized_expression "(pcVar8 != (code *)(iVar17 + 0x48))" ( (binary_expression "pcVar8 != (code *)(iVar17 + 0x48)" identifier != (cast_expression "(code *)(iVar17 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x48)" ( (binary_expression "iVar17 + 0x48" identifier + number_literal) )))) )) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar4 = *(int *)(iVar17 + 0x18)" identifier = (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar17 + 0x14;" (assignment_expression "iVar9 = iVar17 + 0x14" identifier = (binary_expression "iVar17 + 0x14" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" if (parenthesized_expression "(*(int *)(iVar17 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x18) == 0" (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }" { (labeled_statement "LAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;" statement_identifier : (expression_statement "*(code ****)(puVar15 + -0x18) = &local_70;" (assignment_expression "*(code ****)(puVar15 + -0x18) = &local_70" (pointer_expression "*(code ****)(puVar15 + -0x18)" * (cast_expression "(code ****)(puVar15 + -0x18)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_70" & identifier)) ;)) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0x8f116;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0x8f116" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) (expression_statement "iVar17 = extraout_EDX_03;" (assignment_expression "iVar17 = extraout_EDX_03" identifier = identifier) ;) }) (else_clause "else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" else (compound_statement "{\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" { (do_statement "do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);" do (compound_statement "{\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  }" { (while_statement "while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }" while (parenthesized_expression "((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar4" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 <= *(code **)(iVar10 + 0x14)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }" { (expression_statement "iVar4 = *(int *)(iVar10 + 8);" (assignment_expression "iVar4 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;" if (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" ( (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0008f022;" goto statement_identifier ;)) })) (expression_statement "piVar16 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar16 = (int *)(iVar10 + 0xc)" identifier = (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar16 != 0)" ( (binary_expression "*piVar16 != 0" (pointer_expression "*piVar16" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;" statement_identifier : (if_statement "if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;" if (parenthesized_expression "(((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      )))" ( (binary_expression "((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))" (parenthesized_expression "((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar17 + 0x14)" ( (binary_expression "iVar10 == iVar17 + 0x14" identifier == (binary_expression "iVar17 + 0x14" identifier + number_literal)) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      )" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 < *(code **)(iVar10 + 0x14)" identifier < (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0008f0f8;" goto statement_identifier ;))) }))) (expression_statement "lVar28 = CONCAT44(iVar17,local_c0);" (assignment_expression "lVar28 = CONCAT44(iVar17,local_c0)" identifier = (call_expression "CONCAT44(iVar17,local_c0)" identifier (argument_list "(iVar17,local_c0)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(puVar15 + -8);" (assignment_expression "piVar16 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -8;" (assignment_expression "puVar15 = puVar15 + -8" identifier = (binary_expression "puVar15 + -8" identifier + number_literal)) ;) (for_statement "for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" for ( (assignment_expression "puVar2 = *(undefined4 **)(pcVar8 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(pcVar8 + 0x30)" * (cast_expression "(undefined4 **)(pcVar8 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x30)" ( (binary_expression "pcVar8 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar2 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ) (compound_statement "{\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = local_84;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_84" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(puVar15 + -0x18) = puVar2 + 1" (pointer_expression "*(undefined4 **)(puVar15 + -0x18)" * (cast_expression "(undefined4 **)(puVar15 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);" (assignment_expression "*(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18)" (pointer_expression "*(code **)(puVar15 + -0x1c)" * (cast_expression "(code **)(puVar15 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8f07b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8f07b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_84[0] = (code *)(iVar10 + 0x18);" (assignment_expression "local_84[0] = (code *)(iVar10 + 0x18)" (subscript_expression "local_84[0]" identifier [ number_literal ]) = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar28 = CONCAT44(extraout_EDX_01,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX_01,local_c0)" identifier = (call_expression "CONCAT44(extraout_EDX_01,local_c0)" identifier (argument_list "(extraout_EDX_01,local_c0)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(puVar15 + -4);" (assignment_expression "piVar16 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" else (compound_statement "{\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" { (if_statement "if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar14 < *(uint *)(param_4 + 0xb0))" ( (binary_expression "uVar14 < *(uint *)(param_4 + 0xb0)" identifier < (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) ))))) )) (compound_statement "{\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (code *)0x0;" (assignment_expression "local_5c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" statement_identifier : (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65ca7" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;" (assignment_expression "*(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258" (pointer_expression "*(undefined **)((int)piVar16 + -0x14)" * (cast_expression "(undefined **)((int)piVar16 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_0008f258" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);" (assignment_expression "uVar14 = uVar14 - *(uint *)(param_4 + 0xb0)" identifier = (binary_expression "uVar14 - *(uint *)(param_4 + 0xb0)" identifier - (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) )))))) ;) (expression_statement "uVar7 = *(uint *)(param_4 + 0xbc);" (assignment_expression "uVar7 = *(uint *)(param_4 + 0xbc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xbc)" * (cast_expression "(uint *)(param_4 + 0xbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xbc)" ( (binary_expression "param_4 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = *(code ***)(param_4 + 0xc0);" (assignment_expression "local_a0 = *(code ***)(param_4 + 0xc0)" identifier = (pointer_expression "*(code ***)(param_4 + 0xc0)" * (cast_expression "(code ***)(param_4 + 0xc0)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_4 + 0xc0)" ( (binary_expression "param_4 + 0xc0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14)" ( (binary_expression "(uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14" (call_expression "(uint)((int)((int)local_a0 - uVar7) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_a0 - uVar7) >> 2)" ( (binary_expression "(int)((int)local_a0 - uVar7) >> 2" (cast_expression "(int)((int)local_a0 - uVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 - uVar7)" ( (binary_expression "(int)local_a0 - uVar7" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65c2b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19cc7b" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(code **)(uVar7 + uVar14 * 4);" (assignment_expression "local_5c = *(code **)(uVar7 + uVar14 * 4)" identifier = (pointer_expression "*(code **)(uVar7 + uVar14 * 4)" * (cast_expression "(code **)(uVar7 + uVar14 * 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar7 + uVar14 * 4)" ( (binary_expression "uVar7 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar27 = CONCAT44(uVar7,local_5c);" (assignment_expression "uVar27 = CONCAT44(uVar7,local_5c)" identifier = (call_expression "CONCAT44(uVar7,local_5c)" identifier (argument_list "(uVar7,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (local_5c == (code *)0x0) goto LAB_0008f237;" if (parenthesized_expression "(local_5c == (code *)0x0)" ( (binary_expression "local_5c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008f237;" goto statement_identifier ;)) (if_statement "if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 0x10) != 0)" ( (binary_expression "((byte)local_5c[0x2a] & 0x10) != 0" (parenthesized_expression "((byte)local_5c[0x2a] & 0x10)" ( (binary_expression "(byte)local_5c[0x2a] & 0x10" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }" { (expression_statement "*(code **)((int)piVar16 + -0xc) = local_5c;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = local_5c" (pointer_expression "*(code **)((int)piVar16 + -0xc)" * (cast_expression "(code **)((int)piVar16 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = param_2;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = param_2" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f222" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar27 = FUN_0034cd90();" (assignment_expression "uVar27 = FUN_0034cd90()" identifier = (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_5c = (code *)uVar27;" (assignment_expression "local_5c = (code *)uVar27" identifier = (cast_expression "(code *)uVar27" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 7) == 0)" ( (binary_expression "((byte)local_5c[0x2a] & 7) == 0" (parenthesized_expression "((byte)local_5c[0x2a] & 7)" ( (binary_expression "(byte)local_5c[0x2a] & 7" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(code **)(local_5c + 8);" (assignment_expression "local_b0 = *(code **)(local_5c + 8)" identifier = (pointer_expression "*(code **)(local_5c + 8)" * (cast_expression "(code **)(local_5c + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 8)" ( (binary_expression "local_5c + 8" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = ((byte)local_b0[0x2c] & 1) == 0;" (assignment_expression "bVar24 = ((byte)local_b0[0x2c] & 1) == 0" identifier = (binary_expression "((byte)local_b0[0x2c] & 1) == 0" (parenthesized_expression "((byte)local_b0[0x2c] & 1)" ( (binary_expression "(byte)local_b0[0x2c] & 1" (cast_expression "(byte)local_b0[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_b0[0x2c]" identifier [ number_literal ])) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }" { (expression_statement "cVar1 = local_5c[0x28];" (assignment_expression "cVar1 = local_5c[0x28]" identifier = (subscript_expression "local_5c[0x28]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = *(code **)(local_5c + 0xc);" (assignment_expression "local_a8 = *(code **)(local_5c + 0xc)" identifier = (pointer_expression "*(code **)(local_5c + 0xc)" * (cast_expression "(code **)(local_5c + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0xc)" ( (binary_expression "local_5c + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_b5 = (byte)local_5c[0x2b] >> 5 & 1;" (assignment_expression "local_b5 = (byte)local_5c[0x2b] >> 5 & 1" identifier = (binary_expression "(byte)local_5c[0x2b] >> 5 & 1" (binary_expression "(byte)local_5c[0x2b] >> 5" (cast_expression "(byte)local_5c[0x2b]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2b]" identifier [ number_literal ])) >> number_literal) & number_literal)) ;) (expression_statement "bVar22 = ((byte)cVar1 & 0xf) < 2;" (assignment_expression "bVar22 = ((byte)cVar1 & 0xf) < 2" identifier = (binary_expression "((byte)cVar1 & 0xf) < 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) < number_literal)) ;) (expression_statement "bVar24 = ((byte)cVar1 & 0xf) == 2;" (assignment_expression "bVar24 = ((byte)cVar1 & 0xf) == 2" identifier = (binary_expression "((byte)cVar1 & 0xf) == 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (expression_statement "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_b7 == '\0';" (assignment_expression "bVar24 = local_b7 == '\0'" identifier = (binary_expression "local_b7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }" { (if_statement "if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }" if (parenthesized_expression "(local_b5 != 0)" ( (binary_expression "local_b5 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }" { (expression_statement "iVar17 = *(int *)(*local_bc + 8);" (assignment_expression "iVar17 = *(int *)(*local_bc + 8)" identifier = (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }" { (expression_statement "*(code **)((int)piVar16 + -4) = local_5c;" (assignment_expression "*(code **)((int)piVar16 + -4) = local_5c" (pointer_expression "*(code **)((int)piVar16 + -4)" * (cast_expression "(code **)((int)piVar16 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }" if (parenthesized_expression "((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0))" ( (binary_expression "(*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)" (parenthesized_expression "(*(char *)(iVar17 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar17 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar17 + 0x1a25)" * (cast_expression "(char *)(iVar17 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1a25)" ( (binary_expression "iVar17 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(((byte)local_5c[0x29] & 3) == 0)" ( (binary_expression "((byte)local_5c[0x29] & 3) == 0" (parenthesized_expression "((byte)local_5c[0x29] & 3)" ( (binary_expression "(byte)local_5c[0x29] & 3" (cast_expression "(byte)local_5c[0x29]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x29]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }" { (expression_statement "bVar22 = uVar19 < 0x2a;" (assignment_expression "bVar22 = uVar19 < 0x2a" identifier = (binary_expression "uVar19 < 0x2a" identifier < number_literal)) ;) (expression_statement "bVar24 = uVar19 == 0x2a;" (assignment_expression "bVar24 = uVar19 == 0x2a" identifier = (binary_expression "uVar19 == 0x2a" identifier == number_literal)) ;) (expression_statement "uVar27 = CONCAT44(iVar17,local_5c);" (assignment_expression "uVar27 = CONCAT44(iVar17,local_5c)" identifier = (call_expression "CONCAT44(iVar17,local_5c)" identifier (argument_list "(iVar17,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (uVar19 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" if (parenthesized_expression "(uVar19 < 0x2b)" ( (binary_expression "uVar19 < 0x2b" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" { comment comment (expression_statement "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" * (cast_expression "(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" ( (binary_expression "local_a4[uVar19 - 0x65ec4] + (int)local_a4" (subscript_expression "local_a4[uVar19 - 0x65ec4]" identifier [ (binary_expression "uVar19 - 0x65ec4" identifier - number_literal) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0008ed18;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code ****)((int)piVar16 + -0x14) = &local_88;" (assignment_expression "*(code ****)((int)piVar16 + -0x14) = &local_88" (pointer_expression "*(code ****)((int)piVar16 + -0x14)" * (cast_expression "(code ****)((int)piVar16 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_88" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x18) = &local_64;" (assignment_expression "*(code ***)((int)piVar16 + -0x18) = &local_64" (pointer_expression "*(code ***)((int)piVar16 + -0x18)" * (cast_expression "(code ***)((int)piVar16 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x18)" ( (binary_expression "(int)piVar16 + -0x18" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "local_88 = local_a0 + 0xd;" (assignment_expression "local_88 = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x1c) = local_88;" (assignment_expression "*(code ***)((int)piVar16 + -0x1c) = local_88" (pointer_expression "*(code ***)((int)piVar16 + -0x1c)" * (cast_expression "(code ***)((int)piVar16 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x1c)" ( (binary_expression "(int)piVar16 + -0x1c" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)piVar16 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)piVar16 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)piVar16 + -0x20)" * (cast_expression "(undefined1 **)((int)piVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x20)" ( (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x24)" ( (binary_expression "(int)piVar16 + -0x24" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" identifier = identifier) ;) (expression_statement "local_60 = local_a8;" (assignment_expression "local_60 = local_a8" identifier = identifier) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);" (assignment_expression "bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)piVar16 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x20)" ( (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = piVar16 == (int *)0x4;" (assignment_expression "bVar24 = piVar16 == (int *)0x4" identifier = (binary_expression "piVar16 == (int *)0x4" identifier == (cast_expression "(int *)0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "piVar16 = (int *)((int)piVar16 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar16 + -4)" identifier = (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar27 = CONCAT44(extraout_EDX_05,local_5c);" (assignment_expression "uVar27 = CONCAT44(extraout_EDX_05,local_5c)" identifier = (call_expression "CONCAT44(extraout_EDX_05,local_5c)" identifier (argument_list "(extraout_EDX_05,local_5c)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" else (compound_statement "{\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" { (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (code *)0x0;" (assignment_expression "local_a8 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar27 = CONCAT44(local_b4,local_5c);" (assignment_expression "uVar27 = CONCAT44(local_b4,local_5c)" identifier = (call_expression "CONCAT44(local_b4,local_5c)" identifier (argument_list "(local_b4,local_5c)" ( identifier , identifier )))) ;) }))) }) (else_clause "else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" else (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (code *)0x0;" (assignment_expression "local_a8 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar22 = CARRY4(local_ac,(uint)local_d8);" (assignment_expression "bVar22 = CARRY4(local_ac,(uint)local_d8)" identifier = (call_expression "CARRY4(local_ac,(uint)local_d8)" identifier (argument_list "(local_ac,(uint)local_d8)" ( identifier , (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (expression_statement "bVar24 = local_b4 == (code *)0x0;" (assignment_expression "bVar24 = local_b4 == (code *)0x0" identifier = (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0008ed18:\n        local_5c = (code *)uVar27;" statement_identifier : (expression_statement "local_5c = (code *)uVar27;" (assignment_expression "local_5c = (code *)uVar27" identifier = (cast_expression "(code *)uVar27" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pbVar3 = *(byte **)local_5c;" (assignment_expression "pbVar3 = *(byte **)local_5c" identifier = (pointer_expression "*(byte **)local_5c" * (cast_expression "(byte **)local_5c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar18 = (byte *)((int)local_a4 + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca26)" ( (binary_expression "(int)local_a4 + -0x19ca26" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar3;" (assignment_expression "pbVar20 = pbVar3" identifier = identifier) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }" { (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar3 = pbVar3 + 8;" (assignment_expression "pbVar3 = pbVar3 + 8" identifier = (binary_expression "pbVar3 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" else (compound_statement "{\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar18 = (byte *)((int)local_a4 + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca1d)" ( (binary_expression "(int)local_a4 + -0x19ca1d" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar3;" (assignment_expression "pbVar20 = pbVar3" identifier = identifier) ;) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "cVar11 = (!bVar23 && !bVar22) - bVar23;" (assignment_expression "cVar11 = (!bVar23 && !bVar22) - bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) - bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) - identifier)) ;) (expression_statement "pbVar3 = pbVar3 + 7;" (assignment_expression "pbVar3 = pbVar3 + 7" identifier = (binary_expression "pbVar3 + 7" identifier + number_literal)) ;) (if_statement "if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pbVar3 = local_c4;\n          }" { (expression_statement "pbVar3 = local_c4;" (assignment_expression "pbVar3 = local_c4" identifier = identifier) ;) })) }))) (expression_statement "local_c4 = pbVar3;" (assignment_expression "local_c4 = pbVar3" identifier = identifier) ;) (expression_statement "uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);" (assignment_expression "uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11)" identifier = (call_expression "CONCAT31((int3)(uVar27 >> 0x28),cVar11)" identifier (argument_list "((int3)(uVar27 >> 0x28),cVar11)" ( (call_expression "(int3)(uVar27 >> 0x28)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 0x28)" ( (binary_expression "uVar27 >> 0x28" identifier >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" if (parenthesized_expression "(local_b6 != '\0')" ( (binary_expression "local_b6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" { (if_statement "if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" if (parenthesized_expression "(local_b5 == 0)" ( (binary_expression "local_b5 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }" { (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" else (compound_statement "{\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" { (expression_statement "local_34 = local_b0;" (assignment_expression "local_34 = local_b0" identifier = identifier) ;) (expression_statement "local_30 = local_a8;" (assignment_expression "local_30 = local_a8" identifier = identifier) ;) }))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_c8 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_c8 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_c8 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_c8 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_c8 + 8)" * (cast_expression "(undefined4 **)(local_c8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }" { (expression_statement "*(code ***)((int)piVar16 + -8) = &local_5c;" (assignment_expression "*(code ***)((int)piVar16 + -8) = &local_5c" (pointer_expression "*(code ***)((int)piVar16 + -8)" * (cast_expression "(code ***)((int)piVar16 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f393" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" else (compound_statement "{\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" { (expression_statement "*puVar2 = local_5c;" (assignment_expression "*puVar2 = local_5c" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_c8 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_c8 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)piVar16 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_dc" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_d8;" (assignment_expression "local_34 = local_d8" identifier = identifier) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8edda" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (code *)*param_7;" (assignment_expression "local_34 = (code *)*param_7" identifier = (cast_expression "(code *)*param_7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)piVar16 + -8) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -8) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -8)" * (cast_expression "(code ***)((int)piVar16 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_cc;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_cc" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = local_34;" (assignment_expression "*puVar2 = local_34" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_e0" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "uVar26 = CONCAT44(uVar12,local_a8);" (assignment_expression "uVar26 = CONCAT44(uVar12,local_a8)" identifier = (call_expression "CONCAT44(uVar12,local_a8)" identifier (argument_list "(uVar12,local_a8)" ( identifier , identifier )))) ;) (expression_statement "lVar28 = CONCAT44(uVar12,local_c0);" (assignment_expression "lVar28 = CONCAT44(uVar12,local_c0)" identifier = (call_expression "CONCAT44(uVar12,local_c0)" identifier (argument_list "(uVar12,local_c0)" ( identifier , identifier )))) ;) (expression_statement "puVar15 = (undefined1 *)piVar16;" (assignment_expression "puVar15 = (undefined1 *)piVar16" identifier = (cast_expression "(undefined1 *)piVar16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_b5 != 0) goto LAB_0008ee30;" if (parenthesized_expression "(local_b5 != 0)" ( (binary_expression "local_b5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008ee30;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0008eae9:\n      local_c0 = (undefined4)lVar28;" statement_identifier : (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;)) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_7 = param_7 + 3;" (assignment_expression "param_7 = param_7 + 3" identifier = (binary_expression "param_7 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_8 != local_d4)" ( (binary_expression "param_8 != local_d4" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_e8)" ( (binary_expression "local_4c[0] != local_e8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(ERROR "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void gc_process_relocs(Target_x86_64<32> * this, Symbol_table * symtab,\n   Layout * layout, Sized_relobj_file<32,_false> * object, uint data_shndx, uint sh_type, uchar *\n   prelocs, size_t reloc_count, Output_section * output_section, bool needs_special_offset_handling,\n   size_t local_symbol_count, uchar * plocal_symbols) */\n\nvoid __thiscall\nanon_unknown.dwarf_32e241::Target_x86_64<32>::gc_process_relocs\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_false> *object,uint data_shndx,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)\n\n{\n  _Base_ptr *pp_Var1;\n  byte bVar2;\n  byte bVar3;\n  pointer puVar4;\n  pointer ppSVar5;\n  _Base_ptr p_Var6;\n  Target *pTVar7;\n  Garbage_collection *pGVar8;\n  undefined4 *puVar9;\n  _func_int_varargs *p_Var10;\n  char *pcVar11;\n  Icf *pIVar12;\n  code *pcVar13;\n  Parameters *pPVar14;\n  size_t sVar15;\n  _func_int_varargs **pp_Var16;\n  Xindex *pXVar17;\n  pointer pcVar18;\n  int iVar19;\n  _Rb_tree_header *p_Var20;\n  _Base_ptr p_Var21;\n  _Rb_tree_header *p_Var22;\n  char cVar23;\n  General_options *extraout_EDX;\n  General_options *extraout_EDX_00;\n  General_options *pGVar24;\n  General_options *extraout_EDX_01;\n  _Alloc_hider _Var25;\n  General_options *extraout_EDX_02;\n  General_options *extraout_EDX_03;\n  General_options *extraout_EDX_04;\n  General_options *extraout_EDX_05;\n  General_options *extraout_EDX_06;\n  General_options *extraout_EDX_07;\n  Relobj *pRVar26;\n  uint uVar27;\n  undefined4 *puVar28;\n  General_options **ppGVar29;\n  Addend_info *unaff_ESI;\n  undefined **ppuVar30;\n  byte *pbVar31;\n  Addend_info *pAVar32;\n  uint uVar33;\n  _func_int_varargs **pp_Var34;\n  _Alloc_hider _Var35;\n  bool bVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  pair<std::__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>\n  pVar40;\n  General_options *pGStack_f0;\n  undefined1 auStack_ec [4];\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_e8;\n  __node_gen_type *local_e4;\n  Reloc_addend_size_info *local_e0;\n  Addend_info *local_dc;\n  Relobj *local_d8;\n  size_t local_d4;\n  undefined1 *local_d0;\n  Offset_info *local_cc;\n  Symbol_info *local_c8;\n  _func_int_varargs **local_c4;\n  mapped_type *local_c0;\n  Parameters **local_bc;\n  bool local_b7;\n  char local_b6;\n  byte local_b5;\n  General_options *local_b4;\n  Output_segment *local_b0;\n  pointer local_ac;\n  Relobj *local_a8;\n  undefined **local_a4;\n  Icf *local_a0;\n  code *local_9c;\n  _Rb_tree_header *local_98;\n  undefined1 local_94 [8];\n  __node_gen_type __node_gen_2;\n  __node_gen_type __node_gen_3;\n  __node_gen_type __node_gen_1;\n  section_size_type stype;\n  section_size_type stype_1;\n  __node_gen_type __node_gen;\n  Section_id *local_74;\n  Icf *local_70;\n  Sized_relobj_file<32,_false> *local_6c;\n  uint local_68;\n  Output_segment *local_64;\n  Relobj *local_60;\n  Section_id src_id_1;\n  Section_id dst_id;\n  string src_section_name;\n  Section_id src_id;\n  pointer local_2c;\n  _Alloc_hider local_28;\n  \n  bVar39 = 0;\n  local_a4 = &_GLOBAL_OFFSET_TABLE_;\n  if (sh_type == 9) {\n    return;\n  }\n  local_bc = &gold::parameters;\n  pGVar24 = gold::parameters->options_;\n  if (pGVar24 == (General_options *)0x0) {\n    pGStack_f0 = pGVar24;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (pGVar24->icf_status_ == ICF_NONE) {\n    local_e8 = &src_section_name.field_2;\n    pGStack_f0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_e8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppGVar29 = (General_options **)auStack_ec;\n  }\n  else {\n    (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_e8 = &src_section_name.field_2;\n    ppGVar29 = &pGStack_f0;\n  }\n  _Var35._M_p = src_section_name._M_dataplus._M_p;\n  pPVar14 = *local_bc;\n  _Var25._M_p = (pointer)pPVar14->options_;\n  if ((General_options *)_Var25._M_p == (General_options *)0x0) {\n    *(Parameters **)((int)ppGVar29 + -4) = pPVar14;\n    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));\n  }\n  if (((General_options *)_Var25._M_p)->icf_status_ == ICF_NONE) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = (Reloc_addend_size_info *)0x0;\n    local_cc = (Offset_info *)0x0;\n    local_dc = (Addend_info *)0x0;\n    local_c8 = (Symbol_info *)0x0;\n    local_c0 = (mapped_type *)0x0;\n  }\n  else {\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar18 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;\n      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));\n      pcVar18 = _Var35._M_p + sVar15;\n    }\n    *(undefined4 *)((int)ppGVar29 + -4) = 0;\n    *(pointer *)((int)ppGVar29 + -8) = pcVar18;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;\n    *(Icf **)((int)ppGVar29 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);\n    bVar38 = ppGVar29 == (General_options **)0x0;\n    ppuVar30 = local_a4 + -0x67293;\n    pRVar26 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      bVar36 = *(byte *)ppuVar30 < bVar2;\n      bVar38 = *(byte *)ppuVar30 == bVar2;\n      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar37 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      iVar19 = 0xf;\n      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);\n      pRVar26 = src_id.first;\n      do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;\n      operator_delete(*(void **)((int)ppGVar29 + -0x10));\n    }\n    *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;\n    local_c0 = std::__detail::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));\n    local_c8 = &local_c0->symbol_info;\n    unaff_ESI = &local_c0->addend_info;\n    local_e0 = &local_c0->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = &local_c0->offset_info;\n    pPVar14 = *local_bc;\n    local_b6 = '\x01';\n    _Var25._M_p = (pointer)extraout_EDX_06;\n  }\n  if (pPVar14->options_ == (General_options *)0x0) {\n    *(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));\n  }\n  local_b7 = false;\n  if (pPVar14->options_->icf_status_ == ICF_SAFE) {\n    *(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b;\n    local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10));\n    bVar36 = false;\n    bVar38 = !local_b7;\n    _Var25._M_p = (pointer)extraout_EDX_05;\n    if (!bVar38) {\n      iVar19 = 0xc;\n      local_b7 = false;\n      ppuVar30 = local_a4 + -0x66894;\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      } while (bVar38);\n      bVar37 = false;\n      bVar36 = (!bVar36 && !bVar38) == bVar36;\n      _Var25 = src_section_name._M_dataplus;\n      if (!bVar36) {\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (reloc_count != 0) {\n    local_c4 = (_func_int_varargs **)0x0;\n    local_d0 = local_94;\n    local_d4 = 0;\n    local_e4 = &__node_gen;\n    do {\n      uVar33 = *(uint *)(prelocs + 4) & 0xff;\n      uVar27 = *(uint *)(prelocs + 4) >> 8;\n      local_ac = *(pointer *)(prelocs + 8);\n      if (uVar27 < param_10) {\n        if (plocal_symbols == (uchar *)0x0) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0xea;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        local_a8 = (Relobj *)(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n        if (local_a8 < (Relobj *)0xff00) {\nLAB_0008eb4e:\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26);\n          if (local_b6 != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);\n            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }\n            *(uint *)((int)ppGVar29 + -8) = uVar27;\n            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;\n            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));\n            _Var25._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0008eb4e;\n          }\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);\n          if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\nLAB_0008ea63:\n          src_id.first = pRVar26;\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX;\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        if ((local_b7 != false) && ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1)) {\n          if ((*local_bc)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;\n            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));\n          }\n          if (((*local_bc)->options_->shared_).value == false) {\n            if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;\n            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n            local_6c = object;\n            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;\n            pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var25._M_p = pVar40._4_4_;\n            ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n          }\n        }\n        if ((Relobj *)data_shndx != local_a8) {\n          local_b0 = (Output_segment *)object;\n          puVar28 = ppGVar29;\nLAB_0008ee30:\n          if ((*local_bc)->options_ == (General_options *)0x0) {\n            puVar28[-2] = local_a4 + -0x65b32;\n            puVar28[-3] = 0x5c;\n            puVar28[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar28[-5] = 0x8f71a;\n            gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);\n          }\n          ppGVar29 = (General_options **)puVar28;\n          if (((*local_bc)->options_->gc_sections_).value != false) {\n            src_id_1.first = (Relobj *)object;\n            p_Var22 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            src_id_1.second = data_shndx;\n            dst_id.first = (Relobj *)local_b0;\n            dst_id.second = (uint)local_a8;\n            p_Var6 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var21 = &p_Var22->_M_header;\n            if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008eec0:\n              puVar28[-4] = &local_74;\n              local_74 = &src_id_1;\n              puVar28[-5] = 0x8eedb;\n              std::\n              _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n              ::\n              _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                        ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                          *)puVar28[-4],(_Base_ptr)puVar28[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-2],\n                         (tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28);\n              p_Var20 = local_98;\n            }\n            else {\n              do {\n                while ((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;\n                }\n                pp_Var1 = &(p_Var20->_M_header)._M_right;\n                p_Var6 = *pp_Var1;\n                p_Var20 = (_Rb_tree_header *)p_Var21;\n              } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008eeaa:\n              if (((p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ();\n            pTVar7 = (*local_bc)->target_;\n            if (pTVar7 == (Target *)0x0) {\n              puVar28[-3] = local_a4 + -0x65c0e;\n              puVar28[-4] = 0x73;\n              puVar28[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar28[-6] = 0x8f759;\n              gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);\n            }\n            _Var25._M_p = (pointer)pTVar7->_vptr_Target[0x41];\n            if ((General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474)) {\n              puVar28[-3] = local_b4;\n              puVar28[-4] = local_a8;\n              puVar28[-5] = local_b0;\n              puVar28[-6] = data_shndx;\n              puVar28[-7] = object;\n              puVar28[-8] = symtab;\n              puVar28[-9] = pTVar7;\n              puVar28[-10] = 0x8f0b1;\n              (*(code *)_Var25._M_p)();\n              _Var25._M_p = (pointer)extraout_EDX_02;\n            }\n            pp_Var16 = local_c4;\n            ppGVar29 = (General_options **)(puVar28 + -1);\n            if (local_c4 != (_func_int_varargs **)0x0) {\n              local_a8 = (Relobj *)&local_2c;\n              pGVar8 = symtab->gc_;\n              puVar28[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar28[-6] = 0x8ef76;\n              sVar15 = strlen((char *)puVar28[-5]);\n              pIVar12 = local_a0;\n              puVar28[-2] = 0;\n              puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);\n              puVar28[-4] = pp_Var16;\n              puVar28[-5] = local_a0;\n              puVar28[-6] = 0x8ef8b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar28[-3] = pIVar12;\n              puVar28[-4] = &pGVar8->cident_sections_;\n              puVar28[-5] = &local_9c;\n              puVar28[-6] = 0x8ef9f;\n              std::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_e8) {\n    *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;\n    operator_delete(*(void **)((int)ppGVar29 + -0x10));\n  }\n  return;\n}\n\n" comment comment comment comment primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_32e241::Target_x86_64<32>::" identifier . identifier : : identifier < number_literal > : :) (function_declarator "gc_process_relocs\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_false> *object,uint data_shndx,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)" identifier (parameter_list "(Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_false> *object,uint data_shndx,uint sh_type,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,\n          size_t param_10,uchar *plocal_symbols)" ( (parameter_declaration "Target_x86_64<32> *this" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint data_shndx" type_identifier 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 "size_t param_10" primitive_type identifier) , (parameter_declaration "uchar *plocal_symbols" type_identifier (pointer_declarator "*plocal_symbols" * identifier)) ))) { (declaration "_Base_ptr *pp_Var1;" type_identifier (pointer_declarator "*pp_Var1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "pointer puVar4;" type_identifier identifier ;) (declaration "pointer ppSVar5;" type_identifier identifier ;) (declaration "_Base_ptr p_Var6;" type_identifier identifier ;) (declaration "Target *pTVar7;" type_identifier (pointer_declarator "*pTVar7" * identifier) ;) (declaration "Garbage_collection *pGVar8;" type_identifier (pointer_declarator "*pGVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "_func_int_varargs *p_Var10;" type_identifier (pointer_declarator "*p_Var10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "Icf *pIVar12;" type_identifier (pointer_declarator "*pIVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "Parameters *pPVar14;" type_identifier (pointer_declarator "*pPVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "_func_int_varargs **pp_Var16;" type_identifier (pointer_declarator "**pp_Var16" * (pointer_declarator "*pp_Var16" * identifier)) ;) (declaration "Xindex *pXVar17;" type_identifier (pointer_declarator "*pXVar17" * identifier) ;) (declaration "pointer pcVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "_Rb_tree_header *p_Var20;" type_identifier (pointer_declarator "*p_Var20" * identifier) ;) (declaration "_Base_ptr p_Var21;" type_identifier identifier ;) (declaration "_Rb_tree_header *p_Var22;" type_identifier (pointer_declarator "*p_Var22" * identifier) ;) (declaration "char cVar23;" primitive_type identifier ;) (declaration "General_options *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "General_options *extraout_EDX_00;" type_identifier (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "General_options *pGVar24;" type_identifier (pointer_declarator "*pGVar24" * identifier) ;) (declaration "General_options *extraout_EDX_01;" type_identifier (pointer_declarator "*extraout_EDX_01" * identifier) ;) (declaration "_Alloc_hider _Var25;" type_identifier identifier ;) (declaration "General_options *extraout_EDX_02;" type_identifier (pointer_declarator "*extraout_EDX_02" * identifier) ;) (declaration "General_options *extraout_EDX_03;" type_identifier (pointer_declarator "*extraout_EDX_03" * identifier) ;) (declaration "General_options *extraout_EDX_04;" type_identifier (pointer_declarator "*extraout_EDX_04" * identifier) ;) (declaration "General_options *extraout_EDX_05;" type_identifier (pointer_declarator "*extraout_EDX_05" * identifier) ;) (declaration "General_options *extraout_EDX_06;" type_identifier (pointer_declarator "*extraout_EDX_06" * identifier) ;) (declaration "General_options *extraout_EDX_07;" type_identifier (pointer_declarator "*extraout_EDX_07" * identifier) ;) (declaration "Relobj *pRVar26;" type_identifier (pointer_declarator "*pRVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "undefined4 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "General_options **ppGVar29;" type_identifier (pointer_declarator "**ppGVar29" * (pointer_declarator "*ppGVar29" * identifier)) ;) (declaration "Addend_info *unaff_ESI;" type_identifier (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "undefined **ppuVar30;" type_identifier (pointer_declarator "**ppuVar30" * (pointer_declarator "*ppuVar30" * identifier)) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "Addend_info *pAVar32;" type_identifier (pointer_declarator "*pAVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var34;" type_identifier (pointer_declarator "**pp_Var34" * (pointer_declarator "*pp_Var34" * identifier)) ;) (declaration "_Alloc_hider _Var35;" type_identifier identifier ;) (declaration "bool bVar36;" primitive_type identifier ;) (declaration "bool bVar37;" primitive_type identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "byte bVar39;" type_identifier identifier ;) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (expression_statement "__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>\n  pVar40;" (comma_expression "__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>\n  pVar40" identifier (ERROR "::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>" : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier > , identifier , identifier >) , (binary_expression "_bool>\n  pVar40" identifier > identifier)) ;) (declaration "General_options *pGStack_f0;" type_identifier (pointer_declarator "*pGStack_f0" * identifier) ;) (declaration "undefined1 auStack_ec [4];" type_identifier (array_declarator "auStack_ec [4]" identifier [ number_literal ]) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *local_e8;" (binary_expression "allocator<char>_>_9\n  *local_e8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *local_e8" identifier * identifier)) ;) (declaration "__node_gen_type *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "Reloc_addend_size_info *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "Addend_info *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "Relobj *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "size_t local_d4;" primitive_type identifier ;) (declaration "undefined1 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "Offset_info *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "Symbol_info *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "_func_int_varargs **local_c4;" type_identifier (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)) ;) (declaration "mapped_type *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "Parameters **local_bc;" type_identifier (pointer_declarator "**local_bc" * (pointer_declarator "*local_bc" * identifier)) ;) (declaration "bool local_b7;" primitive_type identifier ;) (declaration "char local_b6;" primitive_type identifier ;) (declaration "byte local_b5;" type_identifier identifier ;) (declaration "General_options *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "Output_segment *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "pointer local_ac;" type_identifier identifier ;) (declaration "Relobj *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "Icf *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "_Rb_tree_header *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "__node_gen_type __node_gen_2;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen_3;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen_1;" type_identifier identifier ;) (declaration "section_size_type stype;" type_identifier identifier ;) (declaration "section_size_type stype_1;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "Section_id *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "Icf *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (expression_statement "Sized_relobj_file<32,_false> *local_6c;" (comma_expression "Sized_relobj_file<32,_false> *local_6c" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *local_6c" identifier > (pointer_expression "*local_6c" * identifier))) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "Output_segment *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "Relobj *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "Section_id src_id_1;" type_identifier identifier ;) (declaration "Section_id dst_id;" type_identifier identifier ;) (declaration "string src_section_name;" type_identifier identifier ;) (declaration "Section_id src_id;" type_identifier identifier ;) (declaration "pointer local_2c;" type_identifier identifier ;) (declaration "_Alloc_hider local_28;" type_identifier identifier ;) (expression_statement "bVar39 = 0;" (assignment_expression "bVar39 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_a4 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (if_statement "if (sh_type == 9) {\n    return;\n  }" if (parenthesized_expression "(sh_type == 9)" ( (binary_expression "sh_type == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_bc = &gold::parameters;" (assignment_expression "local_bc = &gold" identifier = (pointer_expression "&gold" & identifier)) (ERROR "::parameters" : : identifier) ;) (expression_statement "pGVar24 = gold::parameters->options_;" (field_expression "pGVar24 = gold::parameters->options_" (assignment_expression "pGVar24 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar24 == (General_options *)0x0) {\n    pGStack_f0 = pGVar24;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(pGVar24 == (General_options *)0x0)" ( (binary_expression "pGVar24 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pGStack_f0 = pGVar24;\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "pGStack_f0 = pGVar24;" (assignment_expression "pGStack_f0 = pGVar24" identifier = identifier) ;) comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (pGVar24->icf_status_ == ICF_NONE) {\n    local_e8 = &src_section_name.field_2;\n    pGStack_f0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_e8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppGVar29 = (General_options **)auStack_ec;\n  }\n  else {\n    (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_e8 = &src_section_name.field_2;\n    ppGVar29 = &pGStack_f0;\n  }" if (parenthesized_expression "(pGVar24->icf_status_ == ICF_NONE)" ( (binary_expression "pGVar24->icf_status_ == ICF_NONE" (field_expression "pGVar24->icf_status_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    local_e8 = &src_section_name.field_2;\n    pGStack_f0 = (General_options *)0x0;\n    src_section_name._M_dataplus._M_p = (pointer)local_e8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    ppGVar29 = (General_options **)auStack_ec;\n  }" { (expression_statement "local_e8 = &src_section_name.field_2;" (assignment_expression "local_e8 = &src_section_name.field_2" identifier = (pointer_expression "&src_section_name.field_2" & (field_expression "src_section_name.field_2" identifier . field_identifier))) ;) (expression_statement "pGStack_f0 = (General_options *)0x0;" (assignment_expression "pGStack_f0 = (General_options *)0x0" identifier = (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "src_section_name._M_dataplus._M_p = (pointer)local_e8;" (assignment_expression "src_section_name._M_dataplus._M_p = (pointer)local_e8" (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)local_e8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&src_section_name,"","");" (binary_expression "_M_construct<char_const*>(&src_section_name,"","")" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&src_section_name,"","")" ( (comma_expression "&src_section_name,"",""" (pointer_expression "&src_section_name" & identifier) , (comma_expression """,""" (string_literal """" " ") , (string_literal """" " "))) ))) ;)) (expression_statement "ppGVar29 = (General_options **)auStack_ec;" (assignment_expression "ppGVar29 = (General_options **)auStack_ec" identifier = (cast_expression "(General_options **)auStack_ec" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }) (else_clause "else {\n    (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_e8 = &src_section_name.field_2;\n    ppGVar29 = &pGStack_f0;\n  }" else (compound_statement "{\n    (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_e8 = &src_section_name.field_2;\n    ppGVar29 = &pGStack_f0;\n  }" { (expression_statement "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);" (call_expression "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx)" (parenthesized_expression "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(&src_section_name,object,data_shndx)" ( (pointer_expression "&src_section_name" & identifier) , identifier , identifier ))) ;) (expression_statement "local_e8 = &src_section_name.field_2;" (assignment_expression "local_e8 = &src_section_name.field_2" identifier = (pointer_expression "&src_section_name.field_2" & (field_expression "src_section_name.field_2" identifier . field_identifier))) ;) (expression_statement "ppGVar29 = &pGStack_f0;" (assignment_expression "ppGVar29 = &pGStack_f0" identifier = (pointer_expression "&pGStack_f0" & identifier)) ;) }))) (expression_statement "_Var35._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var35._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var35._M_p" identifier . field_identifier) = (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pPVar14 = *local_bc;" (assignment_expression "pPVar14 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "_Var25._M_p = (pointer)pPVar14->options_;" (assignment_expression "_Var25._M_p = (pointer)pPVar14->options_" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)pPVar14->options_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "pPVar14->options_" identifier -> field_identifier))) ;) (if_statement "if ((General_options *)_Var25._M_p == (General_options *)0x0) {\n    *(Parameters **)((int)ppGVar29 + -4) = pPVar14;\n    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));\n  }" if (parenthesized_expression "((General_options *)_Var25._M_p == (General_options *)0x0)" ( (binary_expression "(General_options *)_Var25._M_p == (General_options *)0x0" (cast_expression "(General_options *)_Var25._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(Parameters **)((int)ppGVar29 + -4) = pPVar14;\n    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));\n  }" { (expression_statement "*(Parameters **)((int)ppGVar29 + -4) = pPVar14;" (assignment_expression "*(Parameters **)((int)ppGVar29 + -4) = pPVar14" (pointer_expression "*(Parameters **)((int)ppGVar29 + -4)" * (cast_expression "(Parameters **)((int)ppGVar29 + -4)" ( (type_descriptor "Parameters **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)ppGVar29 + -8)" * (cast_expression "(undefined ***)((int)ppGVar29 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (((General_options *)_Var25._M_p)->icf_status_ == ICF_NONE) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = (Reloc_addend_size_info *)0x0;\n    local_cc = (Offset_info *)0x0;\n    local_dc = (Addend_info *)0x0;\n    local_c8 = (Symbol_info *)0x0;\n    local_c0 = (mapped_type *)0x0;\n  }\n  else {\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar18 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;\n      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));\n      pcVar18 = _Var35._M_p + sVar15;\n    }\n    *(undefined4 *)((int)ppGVar29 + -4) = 0;\n    *(pointer *)((int)ppGVar29 + -8) = pcVar18;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;\n    *(Icf **)((int)ppGVar29 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);\n    bVar38 = ppGVar29 == (General_options **)0x0;\n    ppuVar30 = local_a4 + -0x67293;\n    pRVar26 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      bVar36 = *(byte *)ppuVar30 < bVar2;\n      bVar38 = *(byte *)ppuVar30 == bVar2;\n      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar37 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      iVar19 = 0xf;\n      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);\n      pRVar26 = src_id.first;\n      do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;\n      operator_delete(*(void **)((int)ppGVar29 + -0x10));\n    }\n    *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;\n    local_c0 = std::__detail::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));\n    local_c8 = &local_c0->symbol_info;\n    unaff_ESI = &local_c0->addend_info;\n    local_e0 = &local_c0->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = &local_c0->offset_info;\n    pPVar14 = *local_bc;\n    local_b6 = '\x01';\n    _Var25._M_p = (pointer)extraout_EDX_06;\n  }" if (parenthesized_expression "(((General_options *)_Var25._M_p)->icf_status_ == ICF_NONE)" ( (binary_expression "((General_options *)_Var25._M_p)->icf_status_ == ICF_NONE" (field_expression "((General_options *)_Var25._M_p)->icf_status_" (parenthesized_expression "((General_options *)_Var25._M_p)" ( (cast_expression "(General_options *)_Var25._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) )) -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = (Reloc_addend_size_info *)0x0;\n    local_cc = (Offset_info *)0x0;\n    local_dc = (Addend_info *)0x0;\n    local_c8 = (Symbol_info *)0x0;\n    local_c0 = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_0008e94f:\n    local_b6 = '\0';" statement_identifier : (expression_statement "local_b6 = '\0';" (assignment_expression "local_b6 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_e0 = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_e0 = (Reloc_addend_size_info *)0x0" identifier = (cast_expression "(Reloc_addend_size_info *)0x0" ( (type_descriptor "Reloc_addend_size_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_cc = (Offset_info *)0x0;" (assignment_expression "local_cc = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (Addend_info *)0x0;" (assignment_expression "local_dc = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = (Symbol_info *)0x0;" (assignment_expression "local_c8 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = (mapped_type *)0x0;" (assignment_expression "local_c0 = (mapped_type *)0x0" identifier = (cast_expression "(mapped_type *)0x0" ( (type_descriptor "mapped_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar18 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;\n      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));\n      pcVar18 = _Var35._M_p + sVar15;\n    }\n    *(undefined4 *)((int)ppGVar29 + -4) = 0;\n    *(pointer *)((int)ppGVar29 + -8) = pcVar18;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;\n    *(Icf **)((int)ppGVar29 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);\n    bVar38 = ppGVar29 == (General_options **)0x0;\n    ppuVar30 = local_a4 + -0x67293;\n    pRVar26 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      bVar36 = *(byte *)ppuVar30 < bVar2;\n      bVar38 = *(byte *)ppuVar30 == bVar2;\n      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar37 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      iVar19 = 0xf;\n      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);\n      pRVar26 = src_id.first;\n      do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;\n      operator_delete(*(void **)((int)ppGVar29 + -0x10));\n    }\n    *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;\n    local_c0 = std::__detail::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));\n    local_c8 = &local_c0->symbol_info;\n    unaff_ESI = &local_c0->addend_info;\n    local_e0 = &local_c0->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = &local_c0->offset_info;\n    pPVar14 = *local_bc;\n    local_b6 = '\x01';\n    _Var25._M_p = (pointer)extraout_EDX_06;\n  }" else (compound_statement "{\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar18 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;\n      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));\n      pcVar18 = _Var35._M_p + sVar15;\n    }\n    *(undefined4 *)((int)ppGVar29 + -4) = 0;\n    *(pointer *)((int)ppGVar29 + -8) = pcVar18;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;\n    *(Icf **)((int)ppGVar29 + -0x10) = local_a0;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);\n    bVar38 = ppGVar29 == (General_options **)0x0;\n    ppuVar30 = local_a4 + -0x67293;\n    pRVar26 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      bVar36 = *(byte *)ppuVar30 < bVar2;\n      bVar38 = *(byte *)ppuVar30 == bVar2;\n      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n    } while (bVar38);\n    bVar37 = false;\n    bVar36 = (!bVar36 && !bVar38) == bVar36;\n    if (!bVar36) {\n      iVar19 = 0xf;\n      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);\n      pRVar26 = src_id.first;\n      do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;\n      operator_delete(*(void **)((int)ppGVar29 + -0x10));\n    }\n    *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n    src_id.first = (Relobj *)object;\n    src_id.second = data_shndx;\n    local_a0 = symtab->icf_;\n    *(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;\n    local_c0 = std::__detail::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));\n    local_c8 = &local_c0->symbol_info;\n    unaff_ESI = &local_c0->addend_info;\n    local_e0 = &local_c0->reloc_addend_size_info;\n    local_dc = unaff_ESI;\n    local_cc = &local_c0->offset_info;\n    pPVar14 = *local_bc;\n    local_b6 = '\x01';\n    _Var25._M_p = (pointer)extraout_EDX_06;\n  }" { (expression_statement "local_a8 = (Relobj *)&local_2c;" (assignment_expression "local_a8 = (Relobj *)&local_2c" identifier = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "src_id.first = (Relobj *)&local_2c;" (assignment_expression "src_id.first = (Relobj *)&local_2c" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "pcVar18 = (pointer)0xffffffff;" (assignment_expression "pcVar18 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;\n      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));\n      pcVar18 = _Var35._M_p + sVar15;\n    }" if (parenthesized_expression "(src_section_name._M_dataplus._M_p != (pointer)0x0)" ( (binary_expression "src_section_name._M_dataplus._M_p != (pointer)0x0" (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;\n      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));\n      pcVar18 = _Var35._M_p + sVar15;\n    }" { (expression_statement "*(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppGVar29 + -0x10)" * (cast_expression "(pointer *)((int)ppGVar29 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));" (assignment_expression "sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppGVar29 + -0x10))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar18 = _Var35._M_p + sVar15;" (assignment_expression "pcVar18 = _Var35._M_p + sVar15" identifier = (binary_expression "_Var35._M_p + sVar15" (field_expression "_Var35._M_p" identifier . field_identifier) + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)ppGVar29 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -4)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)ppGVar29 + -8) = pcVar18;" (assignment_expression "*(pointer *)((int)ppGVar29 + -8) = pcVar18" (pointer_expression "*(pointer *)((int)ppGVar29 + -8)" * (cast_expression "(pointer *)((int)ppGVar29 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;" (assignment_expression "*(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p" (pointer_expression "*(pointer *)((int)ppGVar29 + -0xc)" * (cast_expression "(pointer *)((int)ppGVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var35._M_p" identifier . field_identifier)) ;) (expression_statement "*(Icf **)((int)ppGVar29 + -0x10) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0x10) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -0x10)" * (cast_expression "(Icf **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" identifier = number_literal) ;) (expression_statement "bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);" (assignment_expression "bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppGVar29 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar38 = ppGVar29 == (General_options **)0x0;" (assignment_expression "bVar38 = ppGVar29 == (General_options **)0x0" identifier = (binary_expression "ppGVar29 == (General_options **)0x0" identifier == (cast_expression "(General_options **)0x0" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppuVar30 = local_a4 + -0x67293;" (assignment_expression "ppuVar30 = local_a4 + -0x67293" identifier = (binary_expression "local_a4 + -0x67293" identifier + number_literal)) ;) (expression_statement "pRVar26 = src_id.first;" (assignment_expression "pRVar26 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      bVar36 = *(byte *)ppuVar30 < bVar2;\n      bVar38 = *(byte *)ppuVar30 == bVar2;\n      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n    } while (bVar38);" do (compound_statement "{\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      bVar36 = *(byte *)ppuVar30 < bVar2;\n      bVar38 = *(byte *)ppuVar30 == bVar2;\n      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n    }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;" (assignment_expression "bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar26->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar26->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar26->super_Object)._vptr_Object" & (field_expression "(pRVar26->super_Object)._vptr_Object" (parenthesized_expression "(pRVar26->super_Object)" ( (field_expression "pRVar26->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar36 = *(byte *)ppuVar30 < bVar2;" (assignment_expression "bVar36 = *(byte *)ppuVar30 < bVar2" identifier = (binary_expression "*(byte *)ppuVar30 < bVar2" (pointer_expression "*(byte *)ppuVar30" * (cast_expression "(byte *)ppuVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier)) ;) (expression_statement "bVar38 = *(byte *)ppuVar30 == bVar2;" (assignment_expression "bVar38 = *(byte *)ppuVar30 == bVar2" identifier = (binary_expression "*(byte *)ppuVar30 == bVar2" (pointer_expression "*(byte *)ppuVar30" * (cast_expression "(byte *)ppuVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier)) ;) (expression_statement "ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);" (assignment_expression "ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar30 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)ppuVar30 + (uint)bVar39 * -2 + 1" (binary_expression "(int)ppuVar30 + (uint)bVar39 * -2" (cast_expression "(int)ppuVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);" (assignment_expression "pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar26 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)pRVar26 + (uint)bVar39 * -2 + 1" (binary_expression "(int)pRVar26 + (uint)bVar39 * -2" (cast_expression "(int)pRVar26" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar36 && !bVar38) == bVar36;" (assignment_expression "bVar36 = (!bVar36 && !bVar38) == bVar36" identifier = (binary_expression "(!bVar36 && !bVar38) == bVar36" (parenthesized_expression "(!bVar36 && !bVar38)" ( (binary_expression "!bVar36 && !bVar38" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n      iVar19 = 0xf;\n      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);\n      pRVar26 = src_id.first;\n      do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n      iVar19 = 0xf;\n      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);\n      pRVar26 = src_id.first;\n      do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);\n      if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" { (expression_statement "iVar19 = 0xf;" (assignment_expression "iVar19 = 0xf" identifier = number_literal) ;) (expression_statement "pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);" (assignment_expression "pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46)" identifier = (cast_expression "(Addend_info *)((int)local_a4 + -0x19ca46)" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca46)" ( (binary_expression "(int)local_a4 + -0x19ca46" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pRVar26 = src_id.first;" (assignment_expression "pRVar26 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      } while (bVar36);" do (compound_statement "{\n        unaff_ESI = pAVar32;\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);\n        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;\n        bVar37 = bVar2 < bVar3;\n        bVar36 = bVar2 == bVar3;\n        pAVar32 = unaff_ESI;\n        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);\n      }" { (expression_statement "unaff_ESI = pAVar32;" (assignment_expression "unaff_ESI = pAVar32" identifier = identifier) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);" (assignment_expression "unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pAVar32 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)pAVar32 + (uint)bVar39 * -2 + 1" (binary_expression "(int)pAVar32 + (uint)bVar39 * -2" (cast_expression "(int)pAVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;" (assignment_expression "bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar26->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar26->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar26->super_Object)._vptr_Object" & (field_expression "(pRVar26->super_Object)._vptr_Object" (parenthesized_expression "(pRVar26->super_Object)" ( (field_expression "pRVar26->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start;" (assignment_expression "bVar2 = *(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start" identifier = (pointer_expression "*(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start" * (cast_expression "(byte *)&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start" & (field_expression "(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl._M_start" (field_expression "(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )._M_impl" (parenthesized_expression "(pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                          )" ( (ERROR "pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::" (comma_expression "pAVar32->\n                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std" (binary_expression "pAVar32->\n                          super__Vector_base<std::pair<long_long_int" (binary_expression "pAVar32->\n                          super__Vector_base<std" (field_expression "pAVar32->\n                          super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<long_long_int,_long_long_int>_>_" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier))))) ;) (expression_statement "bVar37 = bVar2 < bVar3;" (assignment_expression "bVar37 = bVar2 < bVar3" identifier = (binary_expression "bVar2 < bVar3" identifier < identifier)) ;) (expression_statement "bVar36 = bVar2 == bVar3;" (assignment_expression "bVar36 = bVar2 == bVar3" identifier = (binary_expression "bVar2 == bVar3" identifier == identifier)) ;) (expression_statement "pAVar32 = unaff_ESI;" (assignment_expression "pAVar32 = unaff_ESI" identifier = identifier) ;) (expression_statement "pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);" (assignment_expression "pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar26 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)pRVar26 + (uint)bVar39 * -2 + 1" (binary_expression "(int)pRVar26 + (uint)bVar39 * -2" (cast_expression "(int)pRVar26" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (if_statement "if ((!bVar37 && !bVar36) != bVar37) {\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" if (parenthesized_expression "((!bVar37 && !bVar36) != bVar37)" ( (binary_expression "(!bVar37 && !bVar36) != bVar37" (parenthesized_expression "(!bVar37 && !bVar36)" ( (binary_expression "!bVar37 && !bVar36" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" { (if_statement "if (src_id.first == local_a8) {\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }\n        else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }" if (parenthesized_expression "(src_id.first == local_a8)" ( (binary_expression "src_id.first == local_a8" (field_expression "src_id.first" identifier . field_identifier) == identifier) )) (compound_statement "{\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)src_id.first;\n        }" { (expression_statement "pPVar14 = *local_bc;" (assignment_expression "pPVar14 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "_Var25._M_p = (pointer)src_id.first;" (assignment_expression "_Var25._M_p = (pointer)src_id.first" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)src_id.first" ( (type_descriptor "pointer" type_identifier) ) (field_expression "src_id.first" identifier . field_identifier))) ;) }) (else_clause "else {\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }" else (compound_statement "{\n          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;\n          operator_delete(*(void **)((int)ppGVar29 + -0x10));\n          pPVar14 = *local_bc;\n          _Var25._M_p = (pointer)extraout_EDX_07;\n        }" { (expression_statement "*(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)ppGVar29 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)ppGVar29 + -0x10)" * (cast_expression "(Relobj **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppGVar29 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppGVar29 + -0x10))" identifier (argument_list "(*(void **)((int)ppGVar29 + -0x10))" ( (pointer_expression "*(void **)((int)ppGVar29 + -0x10)" * (cast_expression "(void **)((int)ppGVar29 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pPVar14 = *local_bc;" (assignment_expression "pPVar14 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "_Var25._M_p = (pointer)extraout_EDX_07;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_07" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_07" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }))) (goto_statement "goto LAB_0008e94f;" goto statement_identifier ;) })) })) (if_statement "if (src_id.first != local_a8) {\n      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;\n      operator_delete(*(void **)((int)ppGVar29 + -0x10));\n    }" if (parenthesized_expression "(src_id.first != local_a8)" ( (binary_expression "src_id.first != local_a8" (field_expression "src_id.first" identifier . field_identifier) != identifier) )) (compound_statement "{\n      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;\n      operator_delete(*(void **)((int)ppGVar29 + -0x10));\n    }" { (expression_statement "*(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)ppGVar29 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)ppGVar29 + -0x10)" * (cast_expression "(Relobj **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppGVar29 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppGVar29 + -0x10))" identifier (argument_list "(*(void **)((int)ppGVar29 + -0x10))" ( (pointer_expression "*(void **)((int)ppGVar29 + -0x10)" * (cast_expression "(void **)((int)ppGVar29 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = (Relobj *)object;" (assignment_expression "src_id.first = (Relobj *)object" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = data_shndx;" (assignment_expression "src_id.second = data_shndx" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "local_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "*(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;" (assignment_expression "*(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_" (pointer_expression "*(Reloc_info_list **)((int)ppGVar29 + -0x10)" * (cast_expression "(Reloc_info_list **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Reloc_info_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&symtab->icf_->reloc_info_list_" & (field_expression "symtab->icf_->reloc_info_list_" (field_expression "symtab->icf_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_c0 = std::__detail::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (assignment_expression "local_c0 = std" identifier = identifier) : : (comma_expression "__detail::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n               _Map_base<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Map_base<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Icf::Reloc_info>,_std" identifier (ERROR "::Reloc_info>" : : identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Icf::Reloc_info>_>,_std" identifier (ERROR "::Reloc_info>_>" : : (binary_expression "Reloc_info>_" identifier > identifier) >) , identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));" (comma_expression "_Hashtable_traits<true,_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc))" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc))" identifier , (binary_expression "_true>,_true>\n               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc))" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (ERROR "::" : :) (call_expression "operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc))" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "(*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc))" ( (pointer_expression "*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10)" * (call_expression "(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              **)" ( (ERROR "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Map_base<std::pair<gold" (binary_expression "_Map_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Icf::Reloc_info" : : identifier : : identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Icf::Reloc_info" : : identifier : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Select1st" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier < identifier : : identifier * , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>,_true>\n                              **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>,_true>\n                              **" identifier , (binary_expression "_true>,_true>\n                              **" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(key_type **)((int)ppGVar29 + -0xc)" * (cast_expression "(key_type **)((int)ppGVar29 + -0xc)" ( (type_descriptor "key_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;))))) (expression_statement "local_c8 = &local_c0->symbol_info;" (assignment_expression "local_c8 = &local_c0->symbol_info" identifier = (pointer_expression "&local_c0->symbol_info" & (field_expression "local_c0->symbol_info" identifier -> field_identifier))) ;) (expression_statement "unaff_ESI = &local_c0->addend_info;" (assignment_expression "unaff_ESI = &local_c0->addend_info" identifier = (pointer_expression "&local_c0->addend_info" & (field_expression "local_c0->addend_info" identifier -> field_identifier))) ;) (expression_statement "local_e0 = &local_c0->reloc_addend_size_info;" (assignment_expression "local_e0 = &local_c0->reloc_addend_size_info" identifier = (pointer_expression "&local_c0->reloc_addend_size_info" & (field_expression "local_c0->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" identifier = identifier) ;) (expression_statement "local_cc = &local_c0->offset_info;" (assignment_expression "local_cc = &local_c0->offset_info" identifier = (pointer_expression "&local_c0->offset_info" & (field_expression "local_c0->offset_info" identifier -> field_identifier))) ;) (expression_statement "pPVar14 = *local_bc;" (assignment_expression "pPVar14 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "local_b6 = '\x01';" (assignment_expression "local_b6 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "_Var25._M_p = (pointer)extraout_EDX_06;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_06" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_06" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }))) (if_statement "if (pPVar14->options_ == (General_options *)0x0) {\n    *(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));\n  }" if (parenthesized_expression "(pPVar14->options_ == (General_options *)0x0)" ( (binary_expression "pPVar14->options_ == (General_options *)0x0" (field_expression "pPVar14->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI;\n    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9;\n    gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));\n  }" { (expression_statement "*(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI;" (assignment_expression "*(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI" (pointer_expression "*(Addend_info **)((int)ppGVar29 + -4)" * (cast_expression "(Addend_info **)((int)ppGVar29 + -4)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)ppGVar29 + -8)" * (cast_expression "(undefined ***)((int)ppGVar29 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n               *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_b7 = false;" (assignment_expression "local_b7 = false" identifier = false) ;) (if_statement "if (pPVar14->options_->icf_status_ == ICF_SAFE) {\n    *(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b;\n    local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10));\n    bVar36 = false;\n    bVar38 = !local_b7;\n    _Var25._M_p = (pointer)extraout_EDX_05;\n    if (!bVar38) {\n      iVar19 = 0xc;\n      local_b7 = false;\n      ppuVar30 = local_a4 + -0x66894;\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      } while (bVar38);\n      bVar37 = false;\n      bVar36 = (!bVar36 && !bVar38) == bVar36;\n      _Var25 = src_section_name._M_dataplus;\n      if (!bVar36) {\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(pPVar14->options_->icf_status_ == ICF_SAFE)" ( (binary_expression "pPVar14->options_->icf_status_ == ICF_SAFE" (field_expression "pPVar14->options_->icf_status_" (field_expression "pPVar14->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n    *(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b;\n    local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10));\n    bVar36 = false;\n    bVar38 = !local_b7;\n    _Var25._M_p = (pointer)extraout_EDX_05;\n    if (!bVar38) {\n      iVar19 = 0xc;\n      local_b7 = false;\n      ppuVar30 = local_a4 + -0x66894;\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      } while (bVar38);\n      bVar37 = false;\n      bVar36 = (!bVar36 && !bVar38) == bVar36;\n      _Var25 = src_section_name._M_dataplus;\n      if (!bVar36) {\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this;" (assignment_expression "*(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this" (pointer_expression "*(Target_x86_64<32> **)((int)ppGVar29 + -0x10)" * (call_expression "(Target_x86_64<32> **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(Target_x86_64<32> **)" ( (binary_expression "Target_x86_64<32> **" (binary_expression "Target_x86_64<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10));" (assignment_expression "local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10))" identifier = (binary_expression "Target_x86_64<64>::do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10))" (binary_expression "Target_x86_64<64" identifier < number_literal) > (ERROR "::" : :) (call_expression "do_can_check_for_function_pointers\n                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10))" identifier (argument_list "(*(Target_x86_64<64> **)((int)ppGVar29 + -0x10))" ( (pointer_expression "*(Target_x86_64<64> **)((int)ppGVar29 + -0x10)" * (call_expression "(Target_x86_64<64> **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(Target_x86_64<64> **)" ( (binary_expression "Target_x86_64<64> **" (binary_expression "Target_x86_64<64" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar38 = !local_b7;" (assignment_expression "bVar38 = !local_b7" identifier = (unary_expression "!local_b7" ! identifier)) ;) (expression_statement "_Var25._M_p = (pointer)extraout_EDX_05;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_05" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_05" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (!bVar38) {\n      iVar19 = 0xc;\n      local_b7 = false;\n      ppuVar30 = local_a4 + -0x66894;\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      } while (bVar38);\n      bVar37 = false;\n      bVar36 = (!bVar36 && !bVar38) == bVar36;\n      _Var25 = src_section_name._M_dataplus;\n      if (!bVar36) {\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (compound_statement "{\n      iVar19 = 0xc;\n      local_b7 = false;\n      ppuVar30 = local_a4 + -0x66894;\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      } while (bVar38);\n      bVar37 = false;\n      bVar36 = (!bVar36 && !bVar38) == bVar36;\n      _Var25 = src_section_name._M_dataplus;\n      if (!bVar36) {\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "local_b7 = false;" (assignment_expression "local_b7 = false" identifier = false) ;) (expression_statement "ppuVar30 = local_a4 + -0x66894;" (assignment_expression "ppuVar30 = local_a4 + -0x66894" identifier = (binary_expression "local_a4 + -0x66894" identifier + number_literal)) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      } while (bVar38);" do (compound_statement "{\n        if (iVar19 == 0) break;\n        iVar19 = iVar19 + -1;\n        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;\n        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;\n        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);\n      }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;" (assignment_expression "bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p" identifier = (binary_expression "*(byte *)ppuVar30 < (byte)*_Var25._M_p" (pointer_expression "*(byte *)ppuVar30" * (cast_expression "(byte *)ppuVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*_Var25._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;" (assignment_expression "bVar38 = *(byte *)ppuVar30 == *_Var25._M_p" identifier = (binary_expression "*(byte *)ppuVar30 == *_Var25._M_p" (pointer_expression "*(byte *)ppuVar30" * (cast_expression "(byte *)ppuVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*_Var25._M_p" * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);" (assignment_expression "ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar30 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)ppuVar30 + (uint)bVar39 * -2 + 1" (binary_expression "(int)ppuVar30 + (uint)bVar39 * -2" (cast_expression "(int)ppuVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);" (assignment_expression "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1)" (field_expression "_Var25._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var25._M_p + (uint)bVar39 * -2 + 1" (binary_expression "(byte *)_Var25._M_p + (uint)bVar39 * -2" (cast_expression "(byte *)_Var25._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar36 && !bVar38) == bVar36;" (assignment_expression "bVar36 = (!bVar36 && !bVar38) == bVar36" identifier = (binary_expression "(!bVar36 && !bVar38) == bVar36" (parenthesized_expression "(!bVar36 && !bVar38)" ( (binary_expression "!bVar36 && !bVar38" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) == identifier)) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (if_statement "if (!bVar36) {\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n        iVar19 = 0x11;\n        pbVar31 = (byte *)((int)local_a4 + -0x19a243);\n        _Var35 = src_section_name._M_dataplus;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);\n        bVar38 = false;\n        bVar36 = (!bVar37 && !bVar36) == bVar37;\n        if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }\n      }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)((int)local_a4 + -0x19a243);" (assignment_expression "pbVar31 = (byte *)((int)local_a4 + -0x19a243)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19a243)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a243)" ( (binary_expression "(int)local_a4 + -0x19a243" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "_Var35 = src_section_name._M_dataplus;" (assignment_expression "_Var35 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        } while (bVar36);" do (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar37 = *pbVar31 < (byte)*_Var35._M_p;\n          bVar36 = *pbVar31 == *_Var35._M_p;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n        }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar31 < (byte)*_Var35._M_p;" (assignment_expression "bVar37 = *pbVar31 < (byte)*_Var35._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var35._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var35._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar31 == *_Var35._M_p;" (assignment_expression "bVar36 = *pbVar31 == *_Var35._M_p" identifier = (binary_expression "*pbVar31 == *_Var35._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var35._M_p" * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);" (assignment_expression "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (field_expression "_Var35._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2 + 1" (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2" (cast_expression "(byte *)_Var35._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var35._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar37 && !bVar36) == bVar37;" (assignment_expression "bVar36 = (!bVar37 && !bVar36) == bVar37" identifier = (binary_expression "(!bVar37 && !bVar36) == bVar37" (parenthesized_expression "(!bVar37 && !bVar36)" ( (binary_expression "!bVar37 && !bVar36" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n          iVar19 = 0xc;\n          pbVar31 = (byte *)((int)local_a4 + -0x19a231);\n          _Var35 = src_section_name._M_dataplus;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          bVar37 = false;\n          bVar36 = (!bVar38 && !bVar36) == bVar38;\n          if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }\n        }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)((int)local_a4 + -0x19a231);" (assignment_expression "pbVar31 = (byte *)((int)local_a4 + -0x19a231)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19a231)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a231)" ( (binary_expression "(int)local_a4 + -0x19a231" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "_Var35 = src_section_name._M_dataplus;" (assignment_expression "_Var35 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          } while (bVar36);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n            bVar36 = *pbVar31 == *_Var35._M_p;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar31 < (byte)*_Var35._M_p;" (assignment_expression "bVar38 = *pbVar31 < (byte)*_Var35._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var35._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var35._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar31 == *_Var35._M_p;" (assignment_expression "bVar36 = *pbVar31 == *_Var35._M_p" identifier = (binary_expression "*pbVar31 == *_Var35._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var35._M_p" * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);" (assignment_expression "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (field_expression "_Var35._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2 + 1" (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2" (cast_expression "(byte *)_Var35._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var35._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar38 && !bVar36) == bVar38;" (assignment_expression "bVar36 = (!bVar38 && !bVar36) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar36) == bVar38" (parenthesized_expression "(!bVar38 && !bVar36)" ( (binary_expression "!bVar38 && !bVar36" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n            iVar19 = 0x11;\n            ppuVar30 = local_a4 + -0x66889;\n            _Var35 = src_section_name._M_dataplus;\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);\n            bVar38 = false;\n            bVar36 = (!bVar37 && !bVar36) == bVar37;\n            if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }\n          }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) (expression_statement "ppuVar30 = local_a4 + -0x66889;" (assignment_expression "ppuVar30 = local_a4 + -0x66889" identifier = (binary_expression "local_a4 + -0x66889" identifier + number_literal)) ;) (expression_statement "_Var35 = src_section_name._M_dataplus;" (assignment_expression "_Var35 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            } while (bVar36);" do (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;\n              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;\n              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);\n              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n            }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;" (assignment_expression "bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p" identifier = (binary_expression "*(byte *)ppuVar30 < (byte)*_Var35._M_p" (pointer_expression "*(byte *)ppuVar30" * (cast_expression "(byte *)ppuVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*_Var35._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;" (assignment_expression "bVar36 = *(byte *)ppuVar30 == *_Var35._M_p" identifier = (binary_expression "*(byte *)ppuVar30 == *_Var35._M_p" (pointer_expression "*(byte *)ppuVar30" * (cast_expression "(byte *)ppuVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*_Var35._M_p" * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);" (assignment_expression "ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar30 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)ppuVar30 + (uint)bVar39 * -2 + 1" (binary_expression "(int)ppuVar30 + (uint)bVar39 * -2" (cast_expression "(int)ppuVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);" (assignment_expression "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (field_expression "_Var35._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2 + 1" (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2" (cast_expression "(byte *)_Var35._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var35._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar37 && !bVar36) == bVar37;" (assignment_expression "bVar36 = (!bVar37 && !bVar36) == bVar37" identifier = (binary_expression "(!bVar37 && !bVar36) == bVar37" (parenthesized_expression "(!bVar37 && !bVar36)" ( (binary_expression "!bVar37 && !bVar36" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar36) {\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }" if (parenthesized_expression "(!bVar36)" ( (unary_expression "!bVar36" ! identifier) )) (compound_statement "{\n              iVar19 = 9;\n              pbVar31 = (byte *)((int)local_a4 + -0x19a212);\n              _Var35 = src_section_name._M_dataplus;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);\n              local_b7 = (!bVar38 && !bVar36) != bVar38;\n            }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)((int)local_a4 + -0x19a212);" (assignment_expression "pbVar31 = (byte *)((int)local_a4 + -0x19a212)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19a212)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a212)" ( (binary_expression "(int)local_a4 + -0x19a212" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "_Var35 = src_section_name._M_dataplus;" (assignment_expression "_Var35 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              } while (bVar36);" do (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar38 = *pbVar31 < (byte)*_Var35._M_p;\n                bVar36 = *pbVar31 == *_Var35._M_p;\n                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);\n              }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar31 < (byte)*_Var35._M_p;" (assignment_expression "bVar38 = *pbVar31 < (byte)*_Var35._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var35._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var35._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar36 = *pbVar31 == *_Var35._M_p;" (assignment_expression "bVar36 = *pbVar31 == *_Var35._M_p" identifier = (binary_expression "*pbVar31 == *_Var35._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var35._M_p" * (field_expression "_Var35._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);" (assignment_expression "_Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (field_expression "_Var35._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1)" ( (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2 + 1" (binary_expression "(byte *)_Var35._M_p + (uint)bVar39 * -2" (cast_expression "(byte *)_Var35._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var35._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "local_b7 = (!bVar38 && !bVar36) != bVar38;" (assignment_expression "local_b7 = (!bVar38 && !bVar36) != bVar38" identifier = (binary_expression "(!bVar38 && !bVar36) != bVar38" (parenthesized_expression "(!bVar38 && !bVar36)" ( (binary_expression "!bVar38 && !bVar36" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) != identifier)) ;) })) })) })) })) })) })) if (parenthesized_expression "(reloc_count != 0)" ( (binary_expression "reloc_count != 0" identifier != number_literal) )) { (expression_statement "local_c4 = (_func_int_varargs **)0x0;" (assignment_expression "local_c4 = (_func_int_varargs **)0x0" identifier = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" identifier = identifier) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = &__node_gen;" (assignment_expression "local_e4 = &__node_gen" identifier = (pointer_expression "&__node_gen" & identifier)) ;) do { (expression_statement "uVar33 = *(uint *)(prelocs + 4) & 0xff;" (assignment_expression "uVar33 = *(uint *)(prelocs + 4) & 0xff" identifier = (binary_expression "*(uint *)(prelocs + 4) & 0xff" (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) )))) & number_literal)) ;) (expression_statement "uVar27 = *(uint *)(prelocs + 4) >> 8;" (assignment_expression "uVar27 = *(uint *)(prelocs + 4) >> 8" identifier = (binary_expression "*(uint *)(prelocs + 4) >> 8" (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) )))) >> number_literal)) ;) (expression_statement "local_ac = *(pointer *)(prelocs + 8);" (assignment_expression "local_ac = *(pointer *)(prelocs + 8)" identifier = (pointer_expression "*(pointer *)(prelocs + 8)" * (cast_expression "(pointer *)(prelocs + 8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 8)" ( (binary_expression "prelocs + 8" identifier + number_literal) ))))) ;) if (parenthesized_expression "(uVar27 < param_10)" ( (binary_expression "uVar27 < param_10" identifier < identifier) )) { (if_statement "if (plocal_symbols == (uchar *)0x0) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0xea;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }" if (parenthesized_expression "(plocal_symbols == (uchar *)0x0)" ( (binary_expression "plocal_symbols == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0xea;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)ppGVar29 + -8)" * (cast_expression "(undefined ***)((int)ppGVar29 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65ca7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_a8 = (Relobj *)(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);" (assignment_expression "local_a8 = (Relobj *)(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe)" identifier = (binary_expression "(Relobj *)(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe)" (cast_expression "(Relobj *)(uint)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar27 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar27 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar27 * 0x10" identifier + (binary_expression "uVar27 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (local_a8 < (Relobj *)0xff00) {\nLAB_0008eb4e:\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26);\n          if (local_b6 != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);\n            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }\n            *(uint *)((int)ppGVar29 + -8) = uVar27;\n            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;\n            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));\n            _Var25._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0008eb4e;\n          }\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);\n          if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\nLAB_0008ea63:\n          src_id.first = pRVar26;\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX;\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" if (parenthesized_expression "(local_a8 < (Relobj *)0xff00)" ( (binary_expression "local_a8 < (Relobj *)0xff00" identifier < (cast_expression "(Relobj *)0xff00" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008eb4e:\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26);\n          if (local_b6 != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);\n            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\n            goto LAB_0008ea63;\n          }\n        }" { (labeled_statement "LAB_0008eb4e:\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);" statement_identifier : (expression_statement "pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);" (assignment_expression "pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4)" identifier = (pointer_expression "*(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4)" * (cast_expression "(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plocal_symbols + uVar27 * 0x10 + 4)" ( (binary_expression "plocal_symbols + uVar27 * 0x10 + 4" (binary_expression "plocal_symbols + uVar27 * 0x10" identifier + (binary_expression "uVar27 * 0x10" identifier * number_literal)) + number_literal) ))))) ;)) (expression_statement "local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26);" (assignment_expression "local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26)" identifier = (cast_expression "(General_options *)((int)&local_ac->first + (int)pRVar26)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_ac->first + (int)pRVar26)" ( (binary_expression "(int)&local_ac->first + (int)pRVar26" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_b6 != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);\n            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\n            goto LAB_0008ea63;\n          }" if (parenthesized_expression "(local_b6 != '\0')" ( (binary_expression "local_b6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);\n            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\n            goto LAB_0008ea63;\n          }" { (expression_statement "src_id.first = (Relobj *)object;" (assignment_expression "src_id.first = (Relobj *)object" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_a8;" (assignment_expression "src_id.second = (uint)local_a8" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_a8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;" (assignment_expression "*(mapped_type **)((int)ppGVar29 + -0x10) = local_c0" (pointer_expression "*(mapped_type **)((int)ppGVar29 + -0x10)" * (cast_expression "(mapped_type **)((int)ppGVar29 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::" (comma_expression "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc))" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)" ( (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> **)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> **" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);" (assignment_expression "local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1)" identifier = (cast_expression "(Output_segment *)CONCAT31(local_b0._1_3_,1)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_b0._1_3_,1)" identifier (argument_list "(local_b0._1_3_,1)" ( (field_expression "local_b0._1_3_" identifier . field_identifier) , number_literal ))))) ;) (if_statement "if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;" if (parenthesized_expression "((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3)" ( (binary_expression "(plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3" (parenthesized_expression "(plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf)" ( (binary_expression "plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf" (subscript_expression "plocal_symbols[uVar27 * 0x10 + 0xc]" identifier [ (binary_expression "uVar27 * 0x10 + 0xc" (binary_expression "uVar27 * 0x10" identifier * number_literal) + number_literal) ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0008ea48;" goto statement_identifier ;)) (labeled_statement "LAB_0008ebac:\n            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;" (assignment_expression "*(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8" (pointer_expression "*(Symbol_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Symbol_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = (Relobj *)0xffffffff;" (assignment_expression "src_id.first = (Relobj *)0xffffffff" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0xffffffff" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::emplace_back<gold" (binary_expression "Symbol*>_>::emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));" (binary_expression "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)" ( (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "vector<gold::Symbol*,_std::allocator<gold" (binary_expression "vector<gold::Symbol*,_std" (binary_expression "vector<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)ppGVar29 + -0xc)" * (cast_expression "(Symbol ***)((int)ppGVar29 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (goto_statement "goto LAB_0008ea63;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }\n            *(uint *)((int)ppGVar29 + -8) = uVar27;\n            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;\n            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));\n            _Var25._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0008eb4e;\n          }\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);\n          if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\nLAB_0008ea63:\n          src_id.first = pRVar26;\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX;\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" else (compound_statement "{\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }\n            *(uint *)((int)ppGVar29 + -8) = uVar27;\n            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;\n            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));\n            _Var25._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0008eb4e;\n          }\n          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);\n          local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);\n          if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));\nLAB_0008ea63:\n          src_id.first = pRVar26;\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          local_2c = local_ac;\n          src_id.second = 0;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX;\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" { (if_statement "if (local_a8 == (Relobj *)0xffff) {\n            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }\n            *(uint *)((int)ppGVar29 + -8) = uVar27;\n            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;\n            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));\n            _Var25._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0008eb4e;\n          }" if (parenthesized_expression "(local_a8 == (Relobj *)0xffff)" ( (binary_expression "local_a8 == (Relobj *)0xffff" identifier == (cast_expression "(Relobj *)0xffff" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }\n            *(uint *)((int)ppGVar29 + -8) = uVar27;\n            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;\n            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;\n                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));\n            _Var25._M_p = (pointer)extraout_EDX_00;\n            goto LAB_0008eb4e;\n          }" { (expression_statement "pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;" (assignment_expression "pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pXVar17 == (Xindex *)0x0) {\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }" if (parenthesized_expression "(pXVar17 == (Xindex *)0x0)" ( (binary_expression "pXVar17 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;\n              p_Var10 = pp_Var16[0x1b];\n              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;\n              pXVar17 = (Xindex *)(*p_Var10)();\n              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;\n            }" { (expression_statement "pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object;" (assignment_expression "pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object" identifier = (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                         _vptr_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10)" (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)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "p_Var10 = pp_Var16[0x1b];" (assignment_expression "p_Var10 = pp_Var16[0x1b]" identifier = (subscript_expression "pp_Var16[0x1b]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pXVar17 = (Xindex *)(*p_Var10)();" (assignment_expression "pXVar17 = (Xindex *)(*p_Var10)()" identifier = (cast_expression "(Xindex *)(*p_Var10)()" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var10)()" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;" (assignment_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) (expression_statement "*(uint *)((int)ppGVar29 + -8) = uVar27;" (assignment_expression "*(uint *)((int)ppGVar29 + -8) = uVar27" (pointer_expression "*(uint *)((int)ppGVar29 + -8)" * (cast_expression "(uint *)((int)ppGVar29 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;" (assignment_expression "*(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -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)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;" (assignment_expression "*(Xindex **)((int)ppGVar29 + -0x10) = pXVar17" (pointer_expression "*(Xindex **)((int)ppGVar29 + -0x10)" * (cast_expression "(Xindex **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_a8 = (Relobj *)\n                       gold::" (assignment_expression "local_a8 = (Relobj *)\n                       gold" identifier = (cast_expression "(Relobj *)\n                       gold" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));" (call_expression "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8))" identifier (argument_list "(*(Xindex **)((int)ppGVar29 + -0x10),\n                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8))" ( (pointer_expression "*(Xindex **)((int)ppGVar29 + -0x10)" * (cast_expression "(Xindex **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Object **)((int)ppGVar29 + -0xc)" * (cast_expression "(Object **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppGVar29 + -8)" * (cast_expression "(uint *)((int)ppGVar29 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "_Var25._M_p = (pointer)extraout_EDX_00;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_00" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_00" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0008eb4e;" goto statement_identifier ;) })) (expression_statement "pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);" (assignment_expression "pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4)" identifier = (pointer_expression "*(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4)" * (cast_expression "(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plocal_symbols + uVar27 * 0x10 + 4)" ( (binary_expression "plocal_symbols + uVar27 * 0x10 + 4" (binary_expression "plocal_symbols + uVar27 * 0x10" identifier + (binary_expression "uVar27 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);" (assignment_expression "local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26)" identifier = (cast_expression "(General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26)" ( (binary_expression "(int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26" (cast_expression "(int)&(*(pointer *)(prelocs + 8))->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*(pointer *)(prelocs + 8))->first" & (field_expression "(*(pointer *)(prelocs + 8))->first" (parenthesized_expression "(*(pointer *)(prelocs + 8))" ( (pointer_expression "*(pointer *)(prelocs + 8)" * (cast_expression "(pointer *)(prelocs + 8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 8)" ( (binary_expression "prelocs + 8" identifier + number_literal) )))) )) -> field_identifier))) + (cast_expression "(int)pRVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_b6 == '\0') goto LAB_0008eae9;" if (parenthesized_expression "(local_b6 == '\0')" ( (binary_expression "local_b6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008eae9;" goto statement_identifier ;)) (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;" (assignment_expression "*(mapped_type **)((int)ppGVar29 + -0x10) = local_c0" (pointer_expression "*(mapped_type **)((int)ppGVar29 + -0x10)" * (cast_expression "(mapped_type **)((int)ppGVar29 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::" (comma_expression "std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n          vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n          ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc))" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)" ( (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> **)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> **" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);" (assignment_expression "local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00)" identifier = (cast_expression "(Output_segment *)((uint)local_b0 & 0xffffff00)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_b0 & 0xffffff00)" ( (binary_expression "(uint)local_b0 & 0xffffff00" (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;" if (parenthesized_expression "((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3)" ( (binary_expression "(plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3" (parenthesized_expression "(plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf)" ( (binary_expression "plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf" (subscript_expression "plocal_symbols[uVar27 * 0x10 + 0xc]" identifier [ (binary_expression "uVar27 * 0x10 + 0xc" (binary_expression "uVar27 * 0x10" identifier * number_literal) + number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0008ebac;" goto statement_identifier ;)) (labeled_statement "LAB_0008ea48:\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;" (assignment_expression "*(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8" (pointer_expression "*(Symbol_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Symbol_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::emplace_back<gold" (binary_expression "Symbol*>_>::emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));" (binary_expression "Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)" ( (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "vector<gold::Symbol*,_std::allocator<gold" (binary_expression "vector<gold::Symbol*,_std" (binary_expression "vector<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)ppGVar29 + -0xc)" * (cast_expression "(Symbol ***)((int)ppGVar29 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (labeled_statement "LAB_0008ea63:\n          src_id.first = pRVar26;" statement_identifier : (expression_statement "src_id.first = pRVar26;" (assignment_expression "src_id.first = pRVar26" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;)) (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;" (assignment_expression "*(Addend_info **)((int)ppGVar29 + -0x10) = local_dc" (pointer_expression "*(Addend_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Addend_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "local_28._M_p = (pointer)((int)local_ac >> 0x1f);" (assignment_expression "local_28._M_p = (pointer)((int)local_ac >> 0x1f)" (field_expression "local_28._M_p" identifier . field_identifier) = (call_expression "(pointer)((int)local_ac >> 0x1f)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_ac >> 0x1f)" ( (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "_long_long_int>_>_>\n          ::emplace_back" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));" (comma_expression "pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc))" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc))" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)" ( (ERROR "vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::" (comma_expression "vector<std::pair<long_long_int,_long_long_int>,_std" (binary_expression "vector<std::pair<long_long_int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<long_long_int,_long_long_int>_>_>\n                       **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n                       **" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(pair<long_long_int,_long_long_int> **)" ( (comma_expression "pair<long_long_int,_long_long_int> **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\n                   super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "src_id.first = *(Relobj **)prelocs;" (assignment_expression "src_id.first = *(Relobj **)prelocs" (field_expression "src_id.first" identifier . field_identifier) = (pointer_expression "*(Relobj **)prelocs" * (cast_expression "(Relobj **)prelocs" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" if (parenthesized_expression "(puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" identifier == (field_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\n                        super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }" { (expression_statement "*(Icf **)((int)ppGVar29 + -8) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -8) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -8)" * (cast_expression "(Icf **)((int)ppGVar29 + -8)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppGVar29 + -0xc) = puVar4;" (assignment_expression "*(pointer *)((int)ppGVar29 + -0xc) = puVar4" (pointer_expression "*(pointer *)((int)ppGVar29 + -0xc)" * (cast_expression "(pointer *)((int)ppGVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;" (assignment_expression "*(Offset_info **)((int)ppGVar29 + -0x10) = local_cc" (pointer_expression "*(Offset_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Offset_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));" statement_identifier (ERROR "::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>:" : : (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "_M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8))" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "(*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)" ( (ERROR "vector<long_long_unsigned_int,_std::" (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_> **" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)ppGVar29 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)ppGVar29 + -8)" * (cast_expression "(ulonglong **)((int)ppGVar29 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" { (expression_statement "*(Relobj **)puVar4 = *(Relobj **)prelocs;" (assignment_expression "*(Relobj **)puVar4 = *(Relobj **)prelocs" (pointer_expression "*(Relobj **)puVar4" * (cast_expression "(Relobj **)puVar4" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "*(Relobj **)prelocs" * (cast_expression "(Relobj **)prelocs" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)puVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar4 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar4 + 4)" * (cast_expression "(undefined4 *)((int)puVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 4)" ( (binary_expression "(int)puVar4 + 4" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;" (assignment_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\n            super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }))) (expression_statement "dst_id.first = (Relobj *)0x0;" (assignment_expression "dst_id.first = (Relobj *)0x0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)ppGVar29 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)ppGVar29 + -0xc)" * (cast_expression "(Section_id **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;" (assignment_expression "*(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0" (pointer_expression "*(Reloc_addend_size_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::vector<unsigned_int,_std::allocator<unsigned_int>_>:" : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)" ( (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_> **" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)ppGVar29 + -0xc)" * (cast_expression "(uint **)((int)ppGVar29 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (expression_statement "_Var25._M_p = (pointer)extraout_EDX;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if ((char)local_b0 == '\0') goto LAB_0008eae9;" if (parenthesized_expression "((char)local_b0 == '\0')" ( (binary_expression "(char)local_b0 == '\0'" (cast_expression "(char)local_b0" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008eae9;" goto statement_identifier ;)) }))) (if_statement "if ((local_b7 != false) && ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1)) {\n          if ((*local_bc)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;\n            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));\n          }\n          if (((*local_bc)->options_->shared_).value == false) {\n            if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;\n            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n            local_6c = object;\n            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;\n            pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var25._M_p = pVar40._4_4_;\n            ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n          }\n        }" if (parenthesized_expression "((local_b7 != false) && ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1))" ( (binary_expression "(local_b7 != false) && ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1)" (parenthesized_expression "(local_b7 != false)" ( (binary_expression "local_b7 != false" identifier != false) )) && (parenthesized_expression "((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1)" ( (binary_expression "(plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1" (parenthesized_expression "(plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf)" ( (binary_expression "plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf" (subscript_expression "plocal_symbols[uVar27 * 0x10 + 0xc]" identifier [ (binary_expression "uVar27 * 0x10 + 0xc" (binary_expression "uVar27 * 0x10" identifier * number_literal) + number_literal) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if ((*local_bc)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;\n            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));\n          }\n          if (((*local_bc)->options_->shared_).value == false) {\n            if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;\n            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n            local_6c = object;\n            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;\n            pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var25._M_p = pVar40._4_4_;\n            ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n          }\n        }" { (if_statement "if ((*local_bc)->options_ == (General_options *)0x0) {\n            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;\n            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));\n          }" if (parenthesized_expression "((*local_bc)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_bc)->options_ == (General_options *)0x0" (field_expression "(*local_bc)->options_" (parenthesized_expression "(*local_bc)" ( (pointer_expression "*local_bc" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;\n            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;\n            gold::do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));\n          }" { (expression_statement "*(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;" (assignment_expression "*(pointer *)((int)ppGVar29 + -4) = _Var25._M_p" (pointer_expression "*(pointer *)((int)ppGVar29 + -4)" * (cast_expression "(pointer *)((int)ppGVar29 + -4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var25._M_p" identifier . field_identifier)) ;) (expression_statement "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)ppGVar29 + -8)" * (cast_expression "(undefined ***)((int)ppGVar29 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                       *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (((*local_bc)->options_->shared_).value == false) {\n            if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = symtab->icf_;\n            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;\n            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n            local_6c = object;\n            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;\n            pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var25._M_p = pVar40._4_4_;\n            ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n          }" if (parenthesized_expression "(((*local_bc)->options_->shared_).value == false)" ( (binary_expression "((*local_bc)->options_->shared_).value == false" (field_expression "((*local_bc)->options_->shared_).value" (parenthesized_expression "((*local_bc)->options_->shared_)" ( (field_expression "(*local_bc)->options_->shared_" (field_expression "(*local_bc)->options_" (parenthesized_expression "(*local_bc)" ( (pointer_expression "*local_bc" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n            if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }\n          }" { (if_statement "if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }" if (parenthesized_expression "(uVar33 < 0x2b)" ( (binary_expression "uVar33 < 0x2b" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();" (call_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))()" (parenthesized_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))" ( (pointer_expression "*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef])" * (cast_expression "(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + (int)local_a4[uVar33 - 0x65eef])" ( (binary_expression "(int)local_a4 + (int)local_a4[uVar33 - 0x65eef]" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_a4[uVar33 - 0x65eef]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a4[uVar33 - 0x65eef]" identifier [ (binary_expression "uVar33 - 0x65eef" identifier - number_literal) ]))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n            local_a0 = symtab->icf_;\n            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;\n            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n            local_6c = object;\n            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;\n            pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var25._M_p = pVar40._4_4_;\n            ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n          }" else (compound_statement "{\n            local_a0 = symtab->icf_;\n            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);\n            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;\n            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;\n            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;\n            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n            local_6c = object;\n            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;\n            pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();\n            _Var25._M_p = pVar40._4_4_;\n            ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n          }" { (expression_statement "local_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);" (assignment_expression "local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar27 * 0x10 + 0xe)" ( (binary_expression "plocal_symbols + uVar27 * 0x10 + 0xe" (binary_expression "plocal_symbols + uVar27 * 0x10" identifier + (binary_expression "uVar27 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x10)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;" (assignment_expression "__node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_" (field_expression "__node_gen_2._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&local_a0->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_a0->fptr_section_id_" & (field_expression "local_a0->fptr_section_id_" identifier -> field_identifier)))) ;) (expression_statement "*(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;" (assignment_expression "*(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2" (pointer_expression "*(__node_gen_type **)((int)ppGVar29 + -0x14)" * (cast_expression "(__node_gen_type **)((int)ppGVar29 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_2" & identifier)) ;) (expression_statement "*(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;" (assignment_expression "*(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c" (pointer_expression "*(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18)" * (call_expression "(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18)" (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 "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)ppGVar29 + -0x18)" ( (binary_expression "(int)ppGVar29 + -0x18" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h" (pointer_expression "*(__hashtable_alloc **)((int)ppGVar29 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)ppGVar29 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x1c)" ( (binary_expression "(int)ppGVar29 + -0x1c" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_2._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppGVar29 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppGVar29 + -0x20)" * (cast_expression "(undefined1 **)((int)ppGVar29 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x20)" ( (binary_expression "(int)ppGVar29 + -0x20" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_6c = object;" (assignment_expression "local_6c = object" identifier = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x24)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x24)" ( (binary_expression "(int)ppGVar29 + -0x24" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "pVar40 = std::\n                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (assignment_expression "pVar40 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                     ::\n                     _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                     ::\n                     _M_insert<std" identifier , (binary_expression "_true>_>\n                     ::\n                     _M_insert<std" (binary_expression "_true>_>\n                     ::\n                     _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ();" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                               ()" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                               ()" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;))))) (expression_statement "_Var25._M_p = pVar40._4_4_;" (assignment_expression "_Var25._M_p = pVar40._4_4_" (field_expression "_Var25._M_p" identifier . field_identifier) = (field_expression "pVar40._4_4_" identifier . field_identifier)) ;) (expression_statement "ppGVar29 = (General_options **)((int)ppGVar29 + -4);" (assignment_expression "ppGVar29 = (General_options **)((int)ppGVar29 + -4)" identifier = (cast_expression "(General_options **)((int)ppGVar29 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) if (parenthesized_expression "((Relobj *)data_shndx != local_a8)" ( (binary_expression "(Relobj *)data_shndx != local_a8" (cast_expression "(Relobj *)data_shndx" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) { (expression_statement "local_b0 = (Output_segment *)object;" (assignment_expression "local_b0 = (Output_segment *)object" identifier = (cast_expression "(Output_segment *)object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar28 = ppGVar29;" (assignment_expression "puVar28 = ppGVar29" identifier = identifier) ;) (labeled_statement "LAB_0008ee30:\n          if ((*local_bc)->options_ == (General_options *)0x0) {\n            puVar28[-2] = local_a4 + -0x65b32;\n            puVar28[-3] = 0x5c;\n            puVar28[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar28[-5] = 0x8f71a;\n            gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);\n          }" statement_identifier : (if_statement "if ((*local_bc)->options_ == (General_options *)0x0) {\n            puVar28[-2] = local_a4 + -0x65b32;\n            puVar28[-3] = 0x5c;\n            puVar28[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar28[-5] = 0x8f71a;\n            gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);\n          }" if (parenthesized_expression "((*local_bc)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_bc)->options_ == (General_options *)0x0" (field_expression "(*local_bc)->options_" (parenthesized_expression "(*local_bc)" ( (pointer_expression "*local_bc" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar28[-2] = local_a4 + -0x65b32;\n            puVar28[-3] = 0x5c;\n            puVar28[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar28[-5] = 0x8f71a;\n            gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);\n          }" { (expression_statement "puVar28[-2] = local_a4 + -0x65b32;" (assignment_expression "puVar28[-2] = local_a4 + -0x65b32" (subscript_expression "puVar28[-2]" identifier [ number_literal ]) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "puVar28[-3] = 0x5c;" (assignment_expression "puVar28[-3] = 0x5c" (subscript_expression "puVar28[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar28[-4] = (int)local_a4 + -0x1a1d93;" (assignment_expression "puVar28[-4] = (int)local_a4 + -0x1a1d93" (subscript_expression "puVar28[-4]" identifier [ number_literal ]) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar28[-5] = 0x8f71a;" (assignment_expression "puVar28[-5] = 0x8f71a" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);" (call_expression "do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2])" identifier (argument_list "((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2])" ( (cast_expression "(char *)puVar28[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-4]" identifier [ number_literal ])) , (subscript_expression "puVar28[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar28[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-2]" identifier [ number_literal ])) ))) ;)) }))) (expression_statement "ppGVar29 = (General_options **)puVar28;" (assignment_expression "ppGVar29 = (General_options **)puVar28" identifier = (cast_expression "(General_options **)puVar28" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) if (parenthesized_expression "(((*local_bc)->options_->gc_sections_).value != false)" ( (binary_expression "((*local_bc)->options_->gc_sections_).value != false" (field_expression "((*local_bc)->options_->gc_sections_).value" (parenthesized_expression "((*local_bc)->options_->gc_sections_)" ( (field_expression "(*local_bc)->options_->gc_sections_" (field_expression "(*local_bc)->options_" (parenthesized_expression "(*local_bc)" ( (pointer_expression "*local_bc" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) { (expression_statement "src_id_1.first = (Relobj *)object;" (assignment_expression "src_id_1.first = (Relobj *)object" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var22 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var22 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl" (field_expression "(symtab->gc_->section_reloc_map_)._M_t" (parenthesized_expression "(symtab->gc_->section_reloc_map_)" ( (field_expression "symtab->gc_->section_reloc_map_" (field_expression "symtab->gc_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "src_id_1.second = data_shndx;" (assignment_expression "src_id_1.second = data_shndx" (field_expression "src_id_1.second" identifier . field_identifier) = identifier) ;) (expression_statement "dst_id.first = (Relobj *)local_b0;" (assignment_expression "dst_id.first = (Relobj *)local_b0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_b0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "dst_id.second = (uint)local_a8;" (assignment_expression "dst_id.second = (uint)local_a8" (field_expression "dst_id.second" identifier . field_identifier) = (cast_expression "(uint)local_a8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "p_Var6 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;" (assignment_expression "p_Var6 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" identifier = (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(symtab->gc_->section_reloc_map_)._M_t._M_impl" (field_expression "(symtab->gc_->section_reloc_map_)._M_t" (parenthesized_expression "(symtab->gc_->section_reloc_map_)" ( (field_expression "symtab->gc_->section_reloc_map_" (field_expression "symtab->gc_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var21 = &p_Var22->_M_header;" (assignment_expression "p_Var21 = &p_Var22->_M_header" identifier = (pointer_expression "&p_Var22->_M_header" & (field_expression "p_Var22->_M_header" identifier -> field_identifier))) ;) if (parenthesized_expression "(p_Var6 == (_Base_ptr)0x0)" ( (binary_expression "p_Var6 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) { (labeled_statement "LAB_0008eec0:\n              puVar28[-4] = &local_74;" statement_identifier : (expression_statement "puVar28[-4] = &local_74;" (assignment_expression "puVar28[-4] = &local_74" (subscript_expression "puVar28[-4]" identifier [ number_literal ]) = (pointer_expression "&local_74" & identifier)) ;)) (expression_statement "local_74 = &src_id_1;" (assignment_expression "local_74 = &src_id_1" identifier = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "puVar28[-5] = 0x8eedb;" (assignment_expression "puVar28[-5] = 0x8eedb" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::\n              _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n              ::\n              _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::" (comma_expression "std::\n              _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n              _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n              ::\n              _M_emplace_hint_unique<const_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n              ::\n              _M_emplace_hint_unique" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "piecewise_construct_t&,_std" identifier & (ERROR "," ,) identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>&>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > ( ( (ERROR "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*," (comma_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::unordered_set" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) ,) (binary_expression "_unsigned_int>_>_>_>_>_>\n                          *)puVar28[-4]" (binary_expression "_unsigned_int>_>_>_>_>_" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > identifier) > (pointer_expression "*)puVar28[-4]" * (ERROR ")" )) (subscript_expression "puVar28[-4]" identifier [ number_literal ]))) , (cast_expression "(_Base_ptr)puVar28[-3]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar28[-3]" identifier [ number_literal ])) , ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-2],\n                         (tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28);\n              p_Var20 = local_98;\n            }\n            else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-2],\n                         (tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28)" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-2]" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "tuple<const_std::pair<gold" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "&> *)puVar28[-2]" & (ERROR ">" >) (pointer_expression "*)puVar28[-2]" * (ERROR ")" )) (subscript_expression "puVar28[-2]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28)" ( (comma_expression "tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28" (binary_expression "tuple<> *)puVar28[-1]" identifier < (ERROR ">" >) (pointer_expression "*)puVar28[-1]" * (ERROR ")" )) (subscript_expression "puVar28[-1]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)*puVar28" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar28" * identifier))) ))) ; (assignment_expression "p_Var20 = local_98" identifier = identifier) ; } else) (compound_statement "{\n              do {\n                while ((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;\n                }\n                pp_Var1 = &(p_Var20->_M_header)._M_right;\n                p_Var6 = *pp_Var1;\n                p_Var20 = (_Rb_tree_header *)p_Var21;\n              } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008eeaa:\n              if (((p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ();\n            pTVar7 = (*local_bc)->target_;\n            if (pTVar7 == (Target *)0x0) {\n              puVar28[-3] = local_a4 + -0x65c0e;\n              puVar28[-4] = 0x73;\n              puVar28[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar28[-6] = 0x8f759;\n              gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);\n            }\n            _Var25._M_p = (pointer)pTVar7->_vptr_Target[0x41];\n            if ((General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474)) {\n              puVar28[-3] = local_b4;\n              puVar28[-4] = local_a8;\n              puVar28[-5] = local_b0;\n              puVar28[-6] = data_shndx;\n              puVar28[-7] = object;\n              puVar28[-8] = symtab;\n              puVar28[-9] = pTVar7;\n              puVar28[-10] = 0x8f0b1;\n              (*(code *)_Var25._M_p)();\n              _Var25._M_p = (pointer)extraout_EDX_02;\n            }\n            pp_Var16 = local_c4;\n            ppGVar29 = (General_options **)(puVar28 + -1);\n            if (local_c4 != (_func_int_varargs **)0x0) {\n              local_a8 = (Relobj *)&local_2c;\n              pGVar8 = symtab->gc_;\n              puVar28[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar28[-6] = 0x8ef76;\n              sVar15 = strlen((char *)puVar28[-5]);\n              pIVar12 = local_a0;\n              puVar28[-2] = 0;\n              puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);\n              puVar28[-4] = pp_Var16;\n              puVar28[-5] = local_a0;\n              puVar28[-6] = 0x8ef8b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar28[-3] = pIVar12;\n              puVar28[-4] = &pGVar8->cident_sections_;\n              puVar28[-5] = &local_9c;\n              puVar28[-6] = 0x8ef9f;\n              std::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_e8) {\n    *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;\n    operator_delete(*(void **)((int)ppGVar29 + -0x10));\n  }\n  return;\n}" { (do_statement "do {\n                while ((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;\n                }\n                pp_Var1 = &(p_Var20->_M_header)._M_right;\n                p_Var6 = *pp_Var1;\n                p_Var20 = (_Rb_tree_header *)p_Var21;\n              } while (*pp_Var1 != (_Base_ptr)0x0);" do (ERROR "{\n                while ((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;\n                }\n                pp_Var1 = &(p_Var20->_M_header)._M_right;\n                p_Var6 = *pp_Var1;" (compound_statement "{\n                while ((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;\n                }" { (while_statement "while ((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;" while (parenthesized_expression "((p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)._M_left" (parenthesized_expression "(p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left;\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header)" ( (comma_expression "p_Var20 = (_Rb_tree_header *)p_Var6,\n                       object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left" (assignment_expression "p_Var20 = (_Rb_tree_header *)p_Var6" identifier = (cast_expression "(_Rb_tree_header *)p_Var6" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "object <= (Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {\n                  p_Var6 = (p_Var20->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<32,_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))" (binary_expression "_false> *)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var20 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var20 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var20 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var20 + 0x10)" ( (binary_expression "(int)p_Var20 + 0x10" (cast_expression "(int)p_Var20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<32,_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||\n                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1])" (binary_expression "_false> *)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var20 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var20 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var20 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var20 + 0x10)" ( (binary_expression "(int)p_Var20 + 0x10" (cast_expression "(int)p_Var20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1])" ( (binary_expression "data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]" identifier <= (subscript_expression "((size_t *)((int)p_Var20 + 0x10))[1]" (parenthesized_expression "((size_t *)((int)p_Var20 + 0x10))" ( (cast_expression "(size_t *)((int)p_Var20 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var20 + 0x10)" ( (binary_expression "(int)p_Var20 + 0x10" (cast_expression "(int)p_Var20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                  p_Var6" { identifier) = (field_expression "(p_Var20->_M_header)._M_left" (parenthesized_expression "(p_Var20->_M_header)" ( (field_expression "p_Var20->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                  p_Var21 = &p_Var20->_M_header;\n                  if ((p_Var20->_M_header" ; identifier = & identifier -> identifier ; if ( ( identifier -> identifier) )) . field_identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0008eeaa;" goto statement_identifier ;)) }) (expression_statement "pp_Var1 = &(p_Var20->_M_header)._M_right;" (assignment_expression "pp_Var1 = &(p_Var20->_M_header)._M_right" identifier = (pointer_expression "&(p_Var20->_M_header)._M_right" & (field_expression "(p_Var20->_M_header)._M_right" (parenthesized_expression "(p_Var20->_M_header)" ( (field_expression "p_Var20->_M_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "p_Var6 = *pp_Var1;" (assignment_expression "p_Var6 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;)) (expression_statement "p_Var20 = (_Rb_tree_header *)p_Var21;" (assignment_expression "p_Var20 = (_Rb_tree_header *)p_Var21" identifier = (cast_expression "(_Rb_tree_header *)p_Var21" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(*pp_Var1 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 != (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0008eeaa:\n              if (((p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ();" statement_identifier : (if_statement "if (((p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ();" if (parenthesized_expression "(((p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ()" ( (parenthesized_expression "((p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ()" ( (comma_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std::pair<gold" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07;\n            std::\n            _Hashtable<std" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9] = 0x8ef07" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0;\n            puVar28[-9]" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8] = local_d0" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h;\n            puVar28[-8]" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7] = __node_gen._M_h" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id;\n            puVar28[-7]" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6] = &dst_id" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4;\n            puVar28[-6]" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5] = local_e4" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0;\n            puVar28[-5]" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4] = 0" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1;\n            puVar28[-4]" (assignment_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3] = 1" (subscript_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);\n            puVar28[-3]" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4)" (binary_expression "(p_Var22 == p_Var20) ||\n                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count))" (parenthesized_expression "(p_Var22 == p_Var20)" ( (binary_expression "p_Var22 == p_Var20" identifier == identifier) )) || (parenthesized_expression "(object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)" ( (comma_expression "Sized_relobj_file<32,_false> *)p_Var20->_M_node_count" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)p_Var20->_M_node_count" identifier > (pointer_expression "*)p_Var20->_M_node_count" * (ERROR ")" )) (field_expression "p_Var20->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4)" (field_expression "((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;\n            }\n            __node_gen._M_h" (parenthesized_expression "((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))))" ( (binary_expression "object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1)))" ( (comma_expression "Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)p_Var20->_M_node_count &&\n                  (data_shndx < *(uint *)(p_Var20 + 1))" (binary_expression "_false> *)p_Var20->_M_node_count" identifier > (pointer_expression "*)p_Var20->_M_node_count" * (ERROR ")" )) (field_expression "p_Var20->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(uint *)(p_Var20 + 1))" ( (binary_expression "data_shndx < *(uint *)(p_Var20 + 1)" identifier < (pointer_expression "*(uint *)(p_Var20 + 1)" * (cast_expression "(uint *)(p_Var20 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var20 + 1)" ( (binary_expression "p_Var20 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_0008eec0;\n            }\n            __node_gen" identifier identifier ; } identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var20 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var20 + 1) + 4)" ( (binary_expression "(int)(p_Var20 + 1) + 4" (cast_expression "(int)(p_Var20 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var20 + 1)" ( (binary_expression "p_Var20 + 1" identifier + number_literal) ))) + number_literal) ))))) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = (pointer_expression "&dst_id" & identifier)) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = (field_expression "__node_gen._M_h" identifier . field_identifier)) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar28" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            std::\n            _Hashtable" ; identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) (ERROR "::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      (" : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier < true , identifier , identifier > identifier > : : identifier < identifier : : identifier < identifier : : identifier * , identifier > & , identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier > identifier > identifier > identifier > () )) )) (expression_statement ";" ;))) (expression_statement "pTVar7 = (*local_bc)->target_;" (assignment_expression "pTVar7 = (*local_bc)->target_" identifier = (field_expression "(*local_bc)->target_" (parenthesized_expression "(*local_bc)" ( (pointer_expression "*local_bc" * identifier) )) -> field_identifier)) ;) (if_statement "if (pTVar7 == (Target *)0x0) {\n              puVar28[-3] = local_a4 + -0x65c0e;\n              puVar28[-4] = 0x73;\n              puVar28[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar28[-6] = 0x8f759;\n              gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);\n            }" if (parenthesized_expression "(pTVar7 == (Target *)0x0)" ( (binary_expression "pTVar7 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar28[-3] = local_a4 + -0x65c0e;\n              puVar28[-4] = 0x73;\n              puVar28[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar28[-6] = 0x8f759;\n              gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);\n            }" { (expression_statement "puVar28[-3] = local_a4 + -0x65c0e;" (assignment_expression "puVar28[-3] = local_a4 + -0x65c0e" (subscript_expression "puVar28[-3]" identifier [ number_literal ]) = (binary_expression "local_a4 + -0x65c0e" identifier + number_literal)) ;) (expression_statement "puVar28[-4] = 0x73;" (assignment_expression "puVar28[-4] = 0x73" (subscript_expression "puVar28[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar28[-5] = (int)local_a4 + -0x1a1d93;" (assignment_expression "puVar28[-5] = (int)local_a4 + -0x1a1d93" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "puVar28[-6] = 0x8f759;" (assignment_expression "puVar28[-6] = 0x8f759" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);" (call_expression "do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3])" identifier (argument_list "((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3])" ( (cast_expression "(char *)puVar28[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-5]" identifier [ number_literal ])) , (subscript_expression "puVar28[-4]" identifier [ number_literal ]) , (cast_expression "(char *)puVar28[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-3]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "_Var25._M_p = (pointer)pTVar7->_vptr_Target[0x41];" (assignment_expression "_Var25._M_p = (pointer)pTVar7->_vptr_Target[0x41]" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)pTVar7->_vptr_Target[0x41]" ( (type_descriptor "pointer" type_identifier) ) (subscript_expression "pTVar7->_vptr_Target[0x41]" (field_expression "pTVar7->_vptr_Target" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if ((General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474)) {\n              puVar28[-3] = local_b4;\n              puVar28[-4] = local_a8;\n              puVar28[-5] = local_b0;\n              puVar28[-6] = data_shndx;\n              puVar28[-7] = object;\n              puVar28[-8] = symtab;\n              puVar28[-9] = pTVar7;\n              puVar28[-10] = 0x8f0b1;\n              (*(code *)_Var25._M_p)();\n              _Var25._M_p = (pointer)extraout_EDX_02;\n            }" if (parenthesized_expression "((General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474))" ( (binary_expression "(General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474)" (cast_expression "(General_options *)_Var25._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) != (cast_expression "(General_options *)(local_a4 + -0x15e474)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + -0x15e474)" ( (binary_expression "local_a4 + -0x15e474" identifier + number_literal) )))) )) (compound_statement "{\n              puVar28[-3] = local_b4;\n              puVar28[-4] = local_a8;\n              puVar28[-5] = local_b0;\n              puVar28[-6] = data_shndx;\n              puVar28[-7] = object;\n              puVar28[-8] = symtab;\n              puVar28[-9] = pTVar7;\n              puVar28[-10] = 0x8f0b1;\n              (*(code *)_Var25._M_p)();\n              _Var25._M_p = (pointer)extraout_EDX_02;\n            }" { (expression_statement "puVar28[-3] = local_b4;" (assignment_expression "puVar28[-3] = local_b4" (subscript_expression "puVar28[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-4] = local_a8;" (assignment_expression "puVar28[-4] = local_a8" (subscript_expression "puVar28[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-5] = local_b0;" (assignment_expression "puVar28[-5] = local_b0" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-6] = data_shndx;" (assignment_expression "puVar28[-6] = data_shndx" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-7] = object;" (assignment_expression "puVar28[-7] = object" (subscript_expression "puVar28[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-8] = symtab;" (assignment_expression "puVar28[-8] = symtab" (subscript_expression "puVar28[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-9] = pTVar7;" (assignment_expression "puVar28[-9] = pTVar7" (subscript_expression "puVar28[-9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-10] = 0x8f0b1;" (assignment_expression "puVar28[-10] = 0x8f0b1" (subscript_expression "puVar28[-10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)_Var25._M_p)();" (call_expression "(*(code *)_Var25._M_p)()" (parenthesized_expression "(*(code *)_Var25._M_p)" ( (pointer_expression "*(code *)_Var25._M_p" * (cast_expression "(code *)_Var25._M_p" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier))) )) (argument_list "()" ( ))) ;) (expression_statement "_Var25._M_p = (pointer)extraout_EDX_02;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_02" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_02" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) })) (expression_statement "pp_Var16 = local_c4;" (assignment_expression "pp_Var16 = local_c4" identifier = identifier) ;) (expression_statement "ppGVar29 = (General_options **)(puVar28 + -1);" (assignment_expression "ppGVar29 = (General_options **)(puVar28 + -1)" identifier = (cast_expression "(General_options **)(puVar28 + -1)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -1)" ( (binary_expression "puVar28 + -1" identifier + number_literal) )))) ;) (if_statement "if (local_c4 != (_func_int_varargs **)0x0) {\n              local_a8 = (Relobj *)&local_2c;\n              pGVar8 = symtab->gc_;\n              puVar28[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar28[-6] = 0x8ef76;\n              sVar15 = strlen((char *)puVar28[-5]);\n              pIVar12 = local_a0;\n              puVar28[-2] = 0;\n              puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);\n              puVar28[-4] = pp_Var16;\n              puVar28[-5] = local_a0;\n              puVar28[-6] = 0x8ef8b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar28[-3] = pIVar12;\n              puVar28[-4] = &pGVar8->cident_sections_;\n              puVar28[-5] = &local_9c;\n              puVar28[-6] = 0x8ef9f;\n              std::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\n  }" if (parenthesized_expression "(local_c4 != (_func_int_varargs **)0x0)" ( (binary_expression "local_c4 != (_func_int_varargs **)0x0" identifier != (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              local_a8 = (Relobj *)&local_2c;\n              pGVar8 = symtab->gc_;\n              puVar28[-5] = local_c4;\n              local_a0 = (Icf *)&src_id;\n              src_id.first = (Relobj *)&local_2c;\n              puVar28[-6] = 0x8ef76;\n              sVar15 = strlen((char *)puVar28[-5]);\n              pIVar12 = local_a0;\n              puVar28[-2] = 0;\n              puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);\n              puVar28[-4] = pp_Var16;\n              puVar28[-5] = local_a0;\n              puVar28[-6] = 0x8ef8b;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar28[-3] = pIVar12;\n              puVar28[-4] = &pGVar8->cident_sections_;\n              puVar28[-5] = &local_9c;\n              puVar28[-6] = 0x8ef9f;\n              std::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);\n  }" { (expression_statement "local_a8 = (Relobj *)&local_2c;" (assignment_expression "local_a8 = (Relobj *)&local_2c" identifier = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "pGVar8 = symtab->gc_;" (assignment_expression "pGVar8 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "puVar28[-5] = local_c4;" (assignment_expression "puVar28[-5] = local_c4" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "src_id.first = (Relobj *)&local_2c;" (assignment_expression "src_id.first = (Relobj *)&local_2c" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&local_2c" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "puVar28[-6] = 0x8ef76;" (assignment_expression "puVar28[-6] = 0x8ef76" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar15 = strlen((char *)puVar28[-5]);" (assignment_expression "sVar15 = strlen((char *)puVar28[-5])" identifier = (call_expression "strlen((char *)puVar28[-5])" identifier (argument_list "((char *)puVar28[-5])" ( (cast_expression "(char *)puVar28[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-5]" identifier [ number_literal ])) )))) ;) (expression_statement "pIVar12 = local_a0;" (assignment_expression "pIVar12 = local_a0" identifier = identifier) ;) (expression_statement "puVar28[-2] = 0;" (assignment_expression "puVar28[-2] = 0" (subscript_expression "puVar28[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);" (assignment_expression "puVar28[-3] = (byte *)((int)pp_Var16 + sVar15)" (subscript_expression "puVar28[-3]" identifier [ number_literal ]) = (cast_expression "(byte *)((int)pp_Var16 + sVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_Var16 + sVar15)" ( (binary_expression "(int)pp_Var16 + sVar15" (cast_expression "(int)pp_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar28[-4] = pp_Var16;" (assignment_expression "puVar28[-4] = pp_Var16" (subscript_expression "puVar28[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-5] = local_a0;" (assignment_expression "puVar28[-5] = local_a0" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-6] = 0x8ef8b;" (assignment_expression "puVar28[-6] = 0x8ef8b" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "puVar28[-3] = pIVar12;" (assignment_expression "puVar28[-3] = pIVar12" (subscript_expression "puVar28[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[-4] = &pGVar8->cident_sections_;" (assignment_expression "puVar28[-4] = &pGVar8->cident_sections_" (subscript_expression "puVar28[-4]" identifier [ number_literal ]) = (pointer_expression "&pGVar8->cident_sections_" & (field_expression "pGVar8->cident_sections_" identifier -> field_identifier))) ;) (expression_statement "puVar28[-5] = &local_9c;" (assignment_expression "puVar28[-5] = &local_9c" (subscript_expression "puVar28[-5]" identifier [ number_literal ]) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "puVar28[-6] = 0x8ef9f;" (assignment_expression "puVar28[-6] = 0x8ef9f" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::" (comma_expression "std::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>_>_>_>_>\n              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4);" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" identifier (argument_list "((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" ( (parenthesized_expression "(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option) {\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4)" ( (ERROR "_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4]);\n              pcVar13 = local_9c;\n              if (src_id.first != local_a8) {\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }\n              ppGVar29 = (General_options **)(puVar28 + -2);\n              _Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option)" (binary_expression "_Rb_tree<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (comma_expression "_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4])" (binary_expression "_unsigned_int>_>_>_>_>_>\n                      *)puVar28[-5]" (binary_expression "_unsigned_int>_>_>_>_>_" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > identifier) > (pointer_expression "*)puVar28[-5]" * (ERROR ")" )) (subscript_expression "puVar28[-5]" identifier [ number_literal ]))) , (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar28[-4])" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_> *)\n                     puVar28[-4]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                     puVar28[-4]" * (ERROR ")" )) (subscript_expression "puVar28[-4]" identifier [ number_literal ]))) ))) ; (call_expression "pcVar13 = local_9c;\n              if (src_id.first != local_a8)" (assignment_expression "pcVar13 = local_9c" identifier = identifier) (ERROR ";\n              if" ; if) (argument_list "(src_id.first != local_a8)" ( (binary_expression "src_id.first != local_a8" (field_expression "src_id.first" identifier . field_identifier) != identifier) ))) (compound_statement "{\n                puVar28[-6] = src_id.first;\n                puVar28[-7] = 0x8efc2;\n                operator_delete((void *)puVar28[-6]);\n              }" { (expression_statement "puVar28[-6] = src_id.first;" (assignment_expression "puVar28[-6] = src_id.first" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "puVar28[-7] = 0x8efc2;" (assignment_expression "puVar28[-7] = 0x8efc2" (subscript_expression "puVar28[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar28[-6]);" (call_expression "operator_delete((void *)puVar28[-6])" identifier (argument_list "((void *)puVar28[-6])" ( (cast_expression "(void *)puVar28[-6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-6]" identifier [ number_literal ])) ))) ;) }) (assignment_expression "ppGVar29 = (General_options **)(puVar28 + -2)" identifier = (cast_expression "(General_options **)(puVar28 + -2)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -2)" ( (binary_expression "puVar28 + -2" identifier + number_literal) )))) ; (call_expression "_Var25._M_p = (pointer)symtab->gc_;\n              if ((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option)" (assignment_expression "_Var25._M_p = (pointer)symtab->gc_" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)symtab->gc_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "symtab->gc_" identifier -> field_identifier))) (ERROR ";\n              if" ; if) (argument_list "((One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option)" ( (binary_expression "(One_option *)pcVar13 !=\n                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option" (cast_expression "(One_option *)pcVar13" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option" & (field_expression "(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.\n                   option" (field_expression "(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special" (parenthesized_expression "(((General_options *)_Var25._M_p)->version_initializer_)" ( (field_expression "((General_options *)_Var25._M_p)->version_initializer_" (parenthesized_expression "((General_options *)_Var25._M_p)" ( (cast_expression "(General_options *)_Var25._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier))) )))) (compound_statement "{\n                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);\n                p_Var21 = (_Base_ptr)pcVar11;\n                if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        uVar27 = uVar27 - object->local_symbol_count_;\n        pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;\n        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }\n        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }\n_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar19 = 8;\n        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var34 = pp_Var16;\n        do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);\n        bVar37 = false;\n        bVar36 = (!bVar36 && !bVar38) == bVar36;\n        if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }\n        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }\n        puVar28 = ppGVar29;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" { (expression_statement "pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8;" (assignment_expression "pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8" identifier = (binary_expression "(((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf + 8" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2._M_local_buf" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname.field_2" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option.longname" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special\n                          .option" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special" (parenthesized_expression "(((General_options *)_Var25._M_p)->help_initializer_)" ( (field_expression "((General_options *)_Var25._M_p)->help_initializer_" (parenthesized_expression "((General_options *)_Var25._M_p)" ( (cast_expression "(General_options *)_Var25._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ;) (expression_statement "src_id.first = (Relobj *)object;" (assignment_expression "src_id.first = (Relobj *)object" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = data_shndx;" (assignment_expression "src_id.second = data_shndx" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc);" (assignment_expression "p_Var6 = *(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" identifier = (pointer_expression "*(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" * (cast_expression "(_Base_ptr *)\n                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" ( (type_descriptor "_Base_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc)" ( (binary_expression "(int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2 + 0xc" (cast_expression "(int)&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2" & (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname.field_2" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option.longname" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special.option" (field_expression "(((General_options *)_Var25._M_p)->help_initializer_).\n                                 super_Struct_special" (parenthesized_expression "(((General_options *)_Var25._M_p)->help_initializer_)" ( (field_expression "((General_options *)_Var25._M_p)->help_initializer_" (parenthesized_expression "((General_options *)_Var25._M_p)" ( (cast_expression "(General_options *)_Var25._M_p" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "p_Var21 = (_Base_ptr)pcVar11;" (assignment_expression "p_Var21 = (_Base_ptr)pcVar11" identifier = (cast_expression "(_Base_ptr)pcVar11" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) ;) (if_statement "if (p_Var6 == (_Base_ptr)0x0) {\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }" if (parenthesized_expression "(p_Var6 == (_Base_ptr)0x0)" ( (binary_expression "p_Var6 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0008f0f8:\n                  puVar28[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar28[-7] = 0x8f116;\n                  std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }" { (labeled_statement "LAB_0008f0f8:\n                  puVar28[-6] = &local_70;" statement_identifier : (expression_statement "puVar28[-6] = &local_70;" (assignment_expression "puVar28[-6] = &local_70" (subscript_expression "puVar28[-6]" identifier [ number_literal ]) = (pointer_expression "&local_70" & identifier)) ;)) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" identifier = identifier) ;) (expression_statement "puVar28[-7] = 0x8f116;" (assignment_expression "puVar28[-7] = 0x8f116" (subscript_expression "puVar28[-7]" identifier [ number_literal ]) = number_literal) ;) (ERROR "std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::" (comma_expression "std::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique<const_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                  ::\n                  _M_emplace_hint_unique" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "piecewise_construct_t&,_std" identifier & (ERROR "," ,) identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>&>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (expression_statement "tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;" (binary_expression "tuple<>_>\n                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7" ( (assignment_expression "(_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7" (call_expression "(_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)ppGVar29 + -8)" (parenthesized_expression "(_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008f237:\n          *(undefined ***)" ( (ERROR "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*," (comma_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::unordered_set" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) ,) (comma_expression "_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6],(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (binary_expression "_unsigned_int>_>_>_>_>_>\n                              *)puVar28[-6]" (binary_expression "_unsigned_int>_>_>_>_>_" (binary_expression "_unsigned_int>_>_>_>_" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > identifier) > identifier) > (pointer_expression "*)puVar28[-6]" * (ERROR ")" )) (subscript_expression "puVar28[-6]" identifier [ number_literal ]))) , (comma_expression "(_Base_ptr)puVar28[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (cast_expression "(_Base_ptr)puVar28[-5]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar28[-5]" identifier [ number_literal ])) , (assignment_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (field_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_) {\n          src_id_1.first" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_)" ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);\n                  p_Var22 = local_98;\n                  _Var25._M_p = (pointer)extraout_EDX_03;\n                }\n                else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],\n                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2])" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4]" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "tuple<const_std::pair<gold" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "&> *)puVar28[-4]" & (ERROR ">" >) (pointer_expression "*)puVar28[-4]" * (ERROR ")" )) (subscript_expression "puVar28[-4]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2])" ( (comma_expression "tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]" (binary_expression "tuple<> *)puVar28[-3]" identifier < (ERROR ">" >) (pointer_expression "*)puVar28[-3]" * (ERROR ")" )) (subscript_expression "puVar28[-3]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)puVar28[-2]" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar28[-2]" identifier [ number_literal ]))) ))) ; (assignment_expression "p_Var22 = local_98" identifier = identifier) ; (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_03" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_03" ( (type_descriptor "pointer" type_identifier) ) identifier)) ; } else) (compound_statement "{\n                  do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);\nLAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();\n                  _Var25._M_p = pVar40._4_4_;\n                  ppGVar29 = (General_options **)((int)puVar28 + -4);\n                  puVar28 = (undefined4 *)((int)puVar28 + -4);\n                }" { (do_statement "do {\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;\n                    p_Var22 = (_Rb_tree_header *)p_Var21;\n                  } while (*pp_Var1 != (_Base_ptr)0x0);" do (ERROR "{\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }\n                    pp_Var1 = &(p_Var22->_M_header)._M_right;\n                    p_Var6 = *pp_Var1;" (compound_statement "{\n                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;\n                    }" { (while_statement "while ((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;" while (parenthesized_expression "((p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)._M_left" (parenthesized_expression "(p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left;\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header)" ( (comma_expression "p_Var22 = (_Rb_tree_header *)p_Var6,\n                           object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left" (assignment_expression "p_Var22 = (_Rb_tree_header *)p_Var6" identifier = (cast_expression "(_Rb_tree_header *)p_Var6" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "object <= (Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {\n                      p_Var6 = (p_Var22->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<32,_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" (binary_expression "_false> *)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var22 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var22 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<32,_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||\n                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" (binary_expression "_false> *)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var22 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var22 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var22 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1])" ( (binary_expression "data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]" identifier <= (subscript_expression "((size_t *)((int)p_Var22 + 0x10))[1]" (parenthesized_expression "((size_t *)((int)p_Var22 + 0x10))" ( (cast_expression "(size_t *)((int)p_Var22 + 0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var22 + 0x10)" ( (binary_expression "(int)p_Var22 + 0x10" (cast_expression "(int)p_Var22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                      p_Var6" { identifier) = (field_expression "(p_Var22->_M_header)._M_left" (parenthesized_expression "(p_Var22->_M_header)" ( (field_expression "p_Var22->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                      p_Var21 = &p_Var22->_M_header;\n                      if ((p_Var22->_M_header" ; identifier = & identifier -> identifier ; if ( ( identifier -> identifier) )) . field_identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0008f022;" goto statement_identifier ;)) }) (expression_statement "pp_Var1 = &(p_Var22->_M_header)._M_right;" (assignment_expression "pp_Var1 = &(p_Var22->_M_header)._M_right" identifier = (pointer_expression "&(p_Var22->_M_header)._M_right" & (field_expression "(p_Var22->_M_header)._M_right" (parenthesized_expression "(p_Var22->_M_header)" ( (field_expression "p_Var22->_M_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "p_Var6 = *pp_Var1;" (assignment_expression "p_Var6 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;)) (expression_statement "p_Var22 = (_Rb_tree_header *)p_Var21;" (assignment_expression "p_Var22 = (_Rb_tree_header *)p_Var21" identifier = (cast_expression "(_Rb_tree_header *)p_Var21" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(*pp_Var1 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 != (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0008f022:\n                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" statement_identifier : (if_statement "if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ();" if (parenthesized_expression "(((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ()" ( (parenthesized_expression "((p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     ()" ( (comma_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std::pair<gold" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);\n                  pVar40 = std::\n                           _Hashtable<std" (assignment_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" (field_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;\n                  __node_gen_1._M_h" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;\n                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);\n                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;\n                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4)" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar28 + -0x10) = 0" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9) {\n                  *(undefined4 *)((int)puVar28 + -0xc) = 1" (call_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2;\n                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9)" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2);\n                puVar28 = puVar28 + -2" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2)" (binary_expression "(p_Var22 == (_Rb_tree_header *)pcVar11) ||\n                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count))" (parenthesized_expression "(p_Var22 == (_Rb_tree_header *)pcVar11)" ( (binary_expression "p_Var22 == (_Rb_tree_header *)pcVar11" identifier == (cast_expression "(_Rb_tree_header *)pcVar11" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)" ( (comma_expression "Sized_relobj_file<32,_false> *)p_Var22->_M_node_count" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)p_Var22->_M_node_count" identifier > (pointer_expression "*)p_Var22->_M_node_count" * (ERROR ")" )) (field_expression "p_Var22->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;\n                }\n                ppGVar29 = (General_options **)(puVar28 + -2)" (parenthesized_expression "((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))))" ( (binary_expression "object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1)))" ( (comma_expression "Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)p_Var22->_M_node_count &&\n                      (data_shndx < *(uint *)(p_Var22 + 1))" (binary_expression "_false> *)p_Var22->_M_node_count" identifier > (pointer_expression "*)p_Var22->_M_node_count" * (ERROR ")" )) (field_expression "p_Var22->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(uint *)(p_Var22 + 1))" ( (binary_expression "data_shndx < *(uint *)(p_Var22 + 1)" identifier < (pointer_expression "*(uint *)(p_Var22 + 1)" * (cast_expression "(uint *)(p_Var22 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_0008f0f8;\n                }\n                ppGVar29" identifier identifier ; } identifier) = (cast_expression "(General_options **)(puVar28 + -2)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -2)" ( (binary_expression "puVar28 + -2" identifier + number_literal) ))))) (ERROR ";\n                puVar28 = puVar28" ; identifier = identifier) + number_literal) (ERROR ";\n                for" ; for) (argument_list "(puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;\n                    puVar9 = (undefined4 *)*puVar9)" ( (ERROR "puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;" (binary_expression "puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0" (assignment_expression "puVar9 = *(undefined4 **)(pcVar13 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(pcVar13 + 0x30)" * (cast_expression "(undefined4 **)(pcVar13 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x30)" ( (binary_expression "pcVar13 + 0x30" identifier + number_literal) ))))) (ERROR "; puVar9" ; identifier) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (assignment_expression "puVar9 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ))) (ERROR "{" {) * (cast_expression "(undefined4 *)((int)puVar28 + -0xc) = 1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar28 + -0xc) = 1" (parenthesized_expression "((int)puVar28 + -0xc)" ( (binary_expression "(int)puVar28 + -0xc" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";" ;) * (cast_expression "(undefined4 *)((int)puVar28 + -0x10) = 0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar28 + -0x10) = 0" (parenthesized_expression "((int)puVar28 + -0x10)" ( (binary_expression "(int)puVar28 + -0x10" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";" ;) * (cast_expression "(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar28 + -0x14) = &__node_gen_1" (parenthesized_expression "((int)puVar28 + -0x14)" ( (binary_expression "(int)puVar28 + -0x14" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (pointer_expression "&__node_gen_1" & identifier)))) (ERROR ";" ;) * (cast_expression "(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar28 + -0x18) = puVar9 + 1" (parenthesized_expression "((int)puVar28 + -0x18)" ( (binary_expression "(int)puVar28 + -0x18" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (binary_expression "puVar9 + 1" identifier + number_literal)))) (ERROR ";" ;) * (cast_expression "(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4)" (parenthesized_expression "((int)puVar28 + -0x1c)" ( (binary_expression "(int)puVar28 + -0x1c" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (cast_expression "(char *)((int)(p_Var22 + 1) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var22 + 1) + 4)" ( (binary_expression "(int)(p_Var22 + 1) + 4" (cast_expression "(int)(p_Var22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))) + number_literal) )))))) (ERROR ";" ;) * (cast_expression "(undefined1 **)((int)puVar28 + -0x20) = local_d0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar28 + -0x20) = local_d0" (parenthesized_expression "((int)puVar28 + -0x20)" ( (binary_expression "(int)puVar28 + -0x20" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = identifier))) (ERROR ";" ;) * (cast_expression "(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar28 + -0x24) = 0x8f07b" (parenthesized_expression "((int)puVar28 + -0x24)" ( (binary_expression "(int)puVar28 + -0x24" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";\n                  __node_gen_1" ; identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var22 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var22 + 1) + 4)" ( (binary_expression "(int)(p_Var22 + 1) + 4" (cast_expression "(int)(p_Var22 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var22 + 1)" ( (binary_expression "p_Var22 + 1" identifier + number_literal) ))) + number_literal) )))) (ERROR ";\n                  pVar40 = std::\n                           _Hashtable" ; identifier = identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) (ERROR "::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           ::\n                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                     (" : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier < true , identifier , identifier > identifier > : : identifier < identifier : : identifier < identifier : : identifier * , identifier > & , identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < identifier : : identifier < identifier : : identifier * , identifier > , identifier > identifier > identifier > identifier > () )) )) (expression_statement ";" ;))) (expression_statement "_Var25._M_p = pVar40._4_4_;" (assignment_expression "_Var25._M_p = pVar40._4_4_" (field_expression "_Var25._M_p" identifier . field_identifier) = (field_expression "pVar40._4_4_" identifier . field_identifier)) ;) (expression_statement "ppGVar29 = (General_options **)((int)puVar28 + -4);" (assignment_expression "ppGVar29 = (General_options **)((int)puVar28 + -4)" identifier = (cast_expression "(General_options **)((int)puVar28 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar28 + -4)" ( (binary_expression "(int)puVar28 + -4" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar28 = (undefined4 *)((int)puVar28 + -4);" (assignment_expression "puVar28 = (undefined4 *)((int)puVar28 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar28 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar28 + -4)" ( (binary_expression "(int)puVar28 + -4" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (ERROR "}\n            }\n          }\n        }\n      }\n      else {\n        if (uVar27 < object->local_symbol_count_" } } } } } else { if ( identifier < identifier -> identifier) )) (ERROR "{\n          src_id_1" { identifier) . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) (ERROR ";\nLAB_0008f237:\n          *(undefined ***" ; identifier : * ( identifier * * *) )) (argument_list "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) = (binary_expression "local_a4 + -0x65ca7" identifier + number_literal)) ))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;" (assignment_expression "*(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258" (pointer_expression "*(undefined **)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined **)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_0008f258" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "uVar27 = uVar27 - object->local_symbol_count_;" (assignment_expression "uVar27 = uVar27 - object->local_symbol_count_" identifier = (binary_expression "uVar27 - object->local_symbol_count_" identifier - (field_expression "object->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;" (field_expression "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "pGVar24 = (General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold" identifier = (binary_expression "(General_options *)\n                  (object->symbols_).\n                  super__Vector_base<gold" (cast_expression "(General_options *)\n                  (object->symbols_).\n                  super__Vector_base" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(object->symbols_).\n                  super__Vector_base" (parenthesized_expression "(object->symbols_)" ( (field_expression "object->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 "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish;" (field_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                          _M_finish" (field_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold::Symbol*,_std" (assignment_expression "local_a0 = (Icf *)(object->symbols_).\n                          super__Vector_base<gold" identifier = (binary_expression "(Icf *)(object->symbols_).\n                          super__Vector_base<gold" (cast_expression "(Icf *)(object->symbols_).\n                          super__Vector_base" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(object->symbols_).\n                          super__Vector_base" (parenthesized_expression "(object->symbols_)" ( (field_expression "object->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_a0 - (int)pGVar24 >> 2) <= uVar27) {\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }" if (parenthesized_expression "((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27)" ( (binary_expression "(uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27" (call_expression "(uint)((int)local_a0 - (int)pGVar24 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_a0 - (int)pGVar24 >> 2)" ( (binary_expression "(int)local_a0 - (int)pGVar24 >> 2" (binary_expression "(int)local_a0 - (int)pGVar24" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pGVar24" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;\n          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;\n          gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;" (assignment_expression "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b" (pointer_expression "*(undefined ***)((int)ppGVar29 + -8)" * (cast_expression "(undefined ***)((int)ppGVar29 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65c2b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19cc7b" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                     *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);" (assignment_expression "src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4)" (field_expression "src_id_1.first" identifier . field_identifier) = (pointer_expression "*(Relobj **)((int)pGVar24 + uVar27 * 4)" * (cast_expression "(Relobj **)((int)pGVar24 + uVar27 * 4)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pGVar24 + uVar27 * 4)" ( (binary_expression "(int)pGVar24 + uVar27 * 4" (cast_expression "(int)pGVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar27 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;" if (parenthesized_expression "(src_id_1.first == (Relobj *)0x0)" ( (binary_expression "src_id_1.first == (Relobj *)0x0" (field_expression "src_id_1.first" identifier . field_identifier) == (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008f237;" goto statement_identifier ;)) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }" if (parenthesized_expression "((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0)" ( (binary_expression "(((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0" (parenthesized_expression "(((src_id_1.first)->super_Object).shnum_ & 0x100000)" ( (binary_expression "((src_id_1.first)->super_Object).shnum_ & 0x100000" (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));\n          pGVar24 = extraout_EDX_04;\n        }" { (expression_statement "*(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;" (assignment_expression "*(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first" (pointer_expression "*(Relobj **)((int)ppGVar29 + -0xc)" * (cast_expression "(Relobj **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "*(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;" (assignment_expression "*(Symbol_table **)((int)ppGVar29 + -0x10) = symtab" (pointer_expression "*(Symbol_table **)((int)ppGVar29 + -0x10)" * (cast_expression "(Symbol_table **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::" (assignment_expression "src_id_1.first =\n               (Relobj *)\n               gold" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n               gold" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : : identifier : :) (expression_statement "resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc));" (call_expression "resolve_forwards\n                         (*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc))" identifier (argument_list "(*(Symbol_table **)((int)ppGVar29 + -0x10),\n                          *(Symbol **)((int)ppGVar29 + -0xc))" ( (pointer_expression "*(Symbol_table **)((int)ppGVar29 + -0x10)" * (cast_expression "(Symbol_table **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol **)((int)ppGVar29 + -0xc)" * (cast_expression "(Symbol **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pGVar24 = extraout_EDX_04;" (assignment_expression "pGVar24 = extraout_EDX_04" identifier = identifier) ;) })) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }" if (parenthesized_expression "((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0)" ( (binary_expression "(((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0" (parenthesized_expression "(((src_id_1.first)->super_Object).shnum_ & 0x70000)" ( (binary_expression "((src_id_1.first)->super_Object).shnum_ & 0x70000" (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          local_b4 = pGVar24;\n          bVar36 = false;\n          bVar38 = ((uint)local_b0->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          if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }\n        }" { (expression_statement "local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)((src_id_1.first)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((src_id_1.first)->super_Object).xindex_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment" identifier = (field_expression "((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment" (parenthesized_expression "((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)" ( (cast_expression "(anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length" ( (type_descriptor "anon_union_4_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((src_id_1.first)->super_Object).name_._M_string_length" & (field_expression "((src_id_1.first)->super_Object).name_._M_string_length" (field_expression "((src_id_1.first)->super_Object).name_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);" (assignment_expression "pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8)" identifier = (cast_expression "(General_options *)((int)&local_ac->first + (int)local_d8)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_ac->first + (int)local_d8)" ( (binary_expression "(int)&local_ac->first + (int)local_d8" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_b4 = pGVar24;" (assignment_expression "local_b4 = pGVar24" identifier = identifier) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar38 = ((uint)local_b0->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0;" (assignment_expression "bVar38 = ((uint)local_b0->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1) == 0" identifier = (binary_expression "((uint)local_b0->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)local_b0->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1)" ( (ERROR "(uint)local_b0->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "(uint)local_b0->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)local_b0->output_lists_[3].\n                          super__Vector_base<gold::Output_data*" (binary_expression "(uint)local_b0->output_lists_[3].\n                          super__Vector_base<gold" (cast_expression "(uint)local_b0->output_lists_[3].\n                          super__Vector_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_b0->output_lists_[3].\n                          super__Vector_base" (subscript_expression "local_b0->output_lists_[3]" (field_expression "local_b0->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>\n                          ._M_impl._M_end_of_storage & 1" (field_expression "Output_data*>_>\n                          ._M_impl._M_end_of_storage" (field_expression "Output_data*>_>\n                          ._M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar38) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);\n            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar36 = (byte)pGVar24 < 2;\n            bVar38 = (byte)pGVar24 == 2;\n            if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }\n          }" { (expression_statement "local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;" (assignment_expression "local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" identifier = (cast_expression "(Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" (field_expression "((src_id_1.first)->super_Object).name_.field_2" (field_expression "((src_id_1.first)->super_Object).name_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);" (assignment_expression "pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf)" identifier = (cast_expression "(General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte)((src_id_1.first)->super_Object).shnum_ & 0xf)" ( (binary_expression "(byte)((src_id_1.first)->super_Object).shnum_ & 0xf" (field_expression "(byte)((src_id_1.first)->super_Object).shnum_" (call_expression "(byte)((src_id_1.first)->super_Object)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier) & number_literal) )))) ;) (expression_statement "local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;" (assignment_expression "local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1" (binary_expression "*(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5" (pointer_expression "*(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3)" * (cast_expression "(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((src_id_1.first)->super_Object).shnum_ + 3)" ( (binary_expression "(int)&((src_id_1.first)->super_Object).shnum_ + 3" (cast_expression "(int)&((src_id_1.first)->super_Object).shnum_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((src_id_1.first)->super_Object).shnum_" & (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "bVar36 = (byte)pGVar24 < 2;" (assignment_expression "bVar36 = (byte)pGVar24 < 2" identifier = (binary_expression "(byte)pGVar24 < 2" (cast_expression "(byte)pGVar24" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal)) ;) (expression_statement "bVar38 = (byte)pGVar24 == 2;" (assignment_expression "bVar38 = (byte)pGVar24 == 2" identifier = (binary_expression "(byte)pGVar24 == 2" (cast_expression "(byte)pGVar24" ( (type_descriptor "byte" type_identifier) ) identifier) == number_literal)) ;) (if_statement "if (bVar38) {\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n              bVar36 = false;\n              bVar38 = local_b7 == false;\n              if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }\n            }" { (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar38 = local_b7 == false;" (assignment_expression "bVar38 = local_b7 == false" identifier = (binary_expression "local_b7 == false" identifier == false)) ;) (if_statement "if (!bVar38) {\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (compound_statement "{\n                if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;\n                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;\n                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;\n                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();\n                pGVar24 = pVar40._4_4_;\n                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);\n                bVar38 = ppGVar29 == (General_options **)0x4;\n                ppGVar29 = (General_options **)((int)ppGVar29 + -4);\n              }" { (if_statement "if (local_b5 != 0) {\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }" if (parenthesized_expression "(local_b5 != 0)" ( (binary_expression "local_b5 != 0" identifier != number_literal) )) (compound_statement "{\n                  pGVar24 = (*local_bc)->options_;\n                  if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }\n                  if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }\n                }" { (expression_statement "pGVar24 = (*local_bc)->options_;" (assignment_expression "pGVar24 = (*local_bc)->options_" identifier = (field_expression "(*local_bc)->options_" (parenthesized_expression "(*local_bc)" ( (pointer_expression "*local_bc" * identifier) )) -> field_identifier)) ;) (if_statement "if (pGVar24 == (General_options *)0x0) {\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }" if (parenthesized_expression "(pGVar24 == (General_options *)0x0)" ( (binary_expression "pGVar24 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;\n                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;\n                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));\n                  }" { (expression_statement "*(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;" (assignment_expression "*(Relobj **)((int)ppGVar29 + -4) = src_id_1.first" (pointer_expression "*(Relobj **)((int)ppGVar29 + -4)" * (cast_expression "(Relobj **)((int)ppGVar29 + -4)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)ppGVar29 + -8)" * (cast_expression "(undefined ***)((int)ppGVar29 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)ppGVar29 + -0x10)" * (cast_expression "(int *)((int)ppGVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8));" (call_expression "do_gold_unreachable\n                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8))" identifier (argument_list "(*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),\n                               *(char **)((int)ppGVar29 + -8))" ( (pointer_expression "*(char **)((int)ppGVar29 + -0x10)" * (cast_expression "(char **)((int)ppGVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppGVar29 + -0xc)" * (cast_expression "(int *)((int)ppGVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppGVar29 + -8)" * (cast_expression "(char **)((int)ppGVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }" if (parenthesized_expression "(((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0))" ( (binary_expression "((pGVar24->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)" (parenthesized_expression "((pGVar24->shared_).value == false)" ( (binary_expression "(pGVar24->shared_).value == false" (field_expression "(pGVar24->shared_).value" (parenthesized_expression "(pGVar24->shared_)" ( (field_expression "pGVar24->shared_" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)" ( (binary_expression "(((src_id_1.first)->super_Object).shnum_ & 0x300) == 0" (parenthesized_expression "(((src_id_1.first)->super_Object).shnum_ & 0x300)" ( (binary_expression "((src_id_1.first)->super_Object).shnum_ & 0x300" (field_expression "((src_id_1.first)->super_Object).shnum_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    bVar36 = uVar33 < 0x2a;\n                    bVar38 = uVar33 == 0x2a;\n                    if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto _L7547;\n                  }" { (expression_statement "bVar36 = uVar33 < 0x2a;" (assignment_expression "bVar36 = uVar33 < 0x2a" identifier = (binary_expression "uVar33 < 0x2a" identifier < number_literal)) ;) (expression_statement "bVar38 = uVar33 == 0x2a;" (assignment_expression "bVar38 = uVar33 == 0x2a" identifier = (binary_expression "uVar33 == 0x2a" identifier == number_literal)) ;) (if_statement "if (uVar33 < 0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" if (parenthesized_expression "(uVar33 < 0x2b)" ( (binary_expression "uVar33 < 0x2b" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" { comment comment (expression_statement "(*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4)" * (cast_expression "(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[uVar33 - 0x65ec4] + (int)local_a4)" ( (binary_expression "local_a4[uVar33 - 0x65ec4] + (int)local_a4" (subscript_expression "local_a4[uVar33 - 0x65ec4]" identifier [ (binary_expression "uVar33 - 0x65ec4" identifier - number_literal) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto _L7547;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x10)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;" (assignment_expression "*(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3" (pointer_expression "*(__node_gen_type **)((int)ppGVar29 + -0x14)" * (cast_expression "(__node_gen_type **)((int)ppGVar29 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_3" & identifier)) ;) (expression_statement "*(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;" (assignment_expression "*(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64" (pointer_expression "*(Output_segment ***)((int)ppGVar29 + -0x18)" * (cast_expression "(Output_segment ***)((int)ppGVar29 + -0x18)" ( (type_descriptor "Output_segment ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -0x18)" ( (binary_expression "(int)ppGVar29 + -0x18" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "__node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;" (assignment_expression "__node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_" (field_expression "__node_gen_3._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&local_a0->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_a0->fptr_section_id_" & (field_expression "local_a0->fptr_section_id_" identifier -> field_identifier)))) ;) (expression_statement "*(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h" (pointer_expression "*(__hashtable_alloc **)((int)ppGVar29 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)ppGVar29 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x1c)" ( (binary_expression "(int)ppGVar29 + -0x1c" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_3._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)ppGVar29 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)ppGVar29 + -0x20)" * (cast_expression "(undefined1 **)((int)ppGVar29 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x20)" ( (binary_expression "(int)ppGVar29 + -0x20" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x24)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x24)" ( (binary_expression "(int)ppGVar29 + -0x24" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" identifier = identifier) ;) (expression_statement "local_60 = local_a8;" (assignment_expression "local_60 = local_a8" identifier = identifier) ;) (ERROR "pVar40 = std::\n                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (assignment_expression "pVar40 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                         ::\n                         _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                         ::\n                         _M_insert<std" identifier , (binary_expression "_true>_>\n                         ::\n                         _M_insert<std" (binary_expression "_true>_>\n                         ::\n                         _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ();" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                                   ()" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                                   ()" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;))))) (expression_statement "pGVar24 = pVar40._4_4_;" (assignment_expression "pGVar24 = pVar40._4_4_" identifier = (field_expression "pVar40._4_4_" identifier . field_identifier)) ;) (expression_statement "bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);" (assignment_expression "bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)ppGVar29 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x20)" ( (binary_expression "(int)ppGVar29 + -0x20" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar38 = ppGVar29 == (General_options **)0x4;" (assignment_expression "bVar38 = ppGVar29 == (General_options **)0x4" identifier = (binary_expression "ppGVar29 == (General_options **)0x4" identifier == (cast_expression "(General_options **)0x4" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "ppGVar29 = (General_options **)((int)ppGVar29 + -4);" (assignment_expression "ppGVar29 = (General_options **)((int)ppGVar29 + -4)" identifier = (cast_expression "(General_options **)((int)ppGVar29 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -4)" ( (binary_expression "(int)ppGVar29 + -4" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) }) (else_clause "else {\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }" else (compound_statement "{\n            local_b5 = 0;\n            local_a8 = (Relobj *)0x0;\n            local_b0 = (Output_segment *)0x0;\n          }" { (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (Relobj *)0x0;" (assignment_expression "local_a8 = (Relobj *)0x0" identifier = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (Output_segment *)0x0;" (assignment_expression "local_b0 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }" else (compound_statement "{\n          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b5 = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);\n          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);\n          bVar38 = local_b4 == (General_options *)0x0;\n          local_b0 = (Output_segment *)0x0;\n        }" { (expression_statement "local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)((src_id_1.first)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((src_id_1.first)->super_Object).xindex_" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (Relobj *)0x0;" (assignment_expression "local_a8 = (Relobj *)0x0" identifier = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar36 = CARRY4((uint)local_ac,(uint)local_d8);" (assignment_expression "bVar36 = CARRY4((uint)local_ac,(uint)local_d8)" identifier = (call_expression "CARRY4((uint)local_ac,(uint)local_d8)" identifier (argument_list "((uint)local_ac,(uint)local_d8)" ( (cast_expression "(uint)local_ac" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);" (assignment_expression "local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8)" identifier = (cast_expression "(General_options *)((int)&local_ac->first + (int)local_d8)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_ac->first + (int)local_d8)" ( (binary_expression "(int)&local_ac->first + (int)local_d8" (cast_expression "(int)&local_ac->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->first" & (field_expression "local_ac->first" identifier -> field_identifier))) + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "bVar38 = local_b4 == (General_options *)0x0;" (assignment_expression "bVar38 = local_b4 == (General_options *)0x0" identifier = (binary_expression "local_b4 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_b0 = (Output_segment *)0x0;" (assignment_expression "local_b0 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "_L7547:\n        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object" identifier = (field_expression "((src_id_1.first)->super_Object)._vptr_Object" (parenthesized_expression "((src_id_1.first)->super_Object)" ( (field_expression "(src_id_1.first)->super_Object" (parenthesized_expression "(src_id_1.first)" ( (field_expression "src_id_1.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;)) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar31 = (byte *)((int)local_a4 + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca26)" ( (binary_expression "(int)local_a4 + -0x19ca26" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pp_Var34 = pp_Var16;" (assignment_expression "pp_Var34 = pp_Var16" identifier = identifier) ;) (do_statement "do {\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        } while (bVar38);" do (compound_statement "{\n          if (iVar19 == 0) break;\n          iVar19 = iVar19 + -1;\n          bVar36 = *pbVar31 < *(byte *)pp_Var34;\n          bVar38 = *pbVar31 == *(byte *)pp_Var34;\n          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n        }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *pbVar31 < *(byte *)pp_Var34;" (assignment_expression "bVar36 = *pbVar31 < *(byte *)pp_Var34" identifier = (binary_expression "*pbVar31 < *(byte *)pp_Var34" (pointer_expression "*pbVar31" * identifier) < (pointer_expression "*(byte *)pp_Var34" * (cast_expression "(byte *)pp_Var34" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar38 = *pbVar31 == *(byte *)pp_Var34;" (assignment_expression "bVar38 = *pbVar31 == *(byte *)pp_Var34" identifier = (binary_expression "*pbVar31 == *(byte *)pp_Var34" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*(byte *)pp_Var34" * (cast_expression "(byte *)pp_Var34" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);" (assignment_expression "pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var34 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)pp_Var34 + (uint)bVar39 * -2 + 1" (binary_expression "(int)pp_Var34 + (uint)bVar39 * -2" (cast_expression "(int)pp_Var34" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar36 = (!bVar36 && !bVar38) == bVar36;" (assignment_expression "bVar36 = (!bVar36 && !bVar38) == bVar36" identifier = (binary_expression "(!bVar36 && !bVar38) == bVar36" (parenthesized_expression "(!bVar36 && !bVar38)" ( (binary_expression "!bVar36 && !bVar38" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar36) {\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }\n        else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }" if (parenthesized_expression "(bVar36)" ( identifier )) (compound_statement "{\n          local_c4 = pp_Var16 + 2;\n          cVar23 = '\0';\n        }" { (expression_statement "local_c4 = pp_Var16 + 2;" (assignment_expression "local_c4 = pp_Var16 + 2" identifier = (binary_expression "pp_Var16 + 2" identifier + number_literal)) ;) (expression_statement "cVar23 = '\0';" (assignment_expression "cVar23 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }" else (compound_statement "{\n          iVar19 = 7;\n          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var34 = pp_Var16;\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);\n          cVar23 = (!bVar37 && !bVar36) - bVar37;\n          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);\n          if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }\n          local_c4 = pp_Var16;\n        }" { (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar31 = (byte *)((int)local_a4 + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca1d)" ( (binary_expression "(int)local_a4 + -0x19ca1d" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pp_Var34 = pp_Var16;" (assignment_expression "pp_Var34 = pp_Var16" identifier = identifier) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          } while (bVar36);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar37 = *pbVar31 < *(byte *)pp_Var34;\n            bVar36 = *pbVar31 == *(byte *)pp_Var34;\n            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;\n            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar31 < *(byte *)pp_Var34;" (assignment_expression "bVar37 = *pbVar31 < *(byte *)pp_Var34" identifier = (binary_expression "*pbVar31 < *(byte *)pp_Var34" (pointer_expression "*pbVar31" * identifier) < (pointer_expression "*(byte *)pp_Var34" * (cast_expression "(byte *)pp_Var34" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar36 = *pbVar31 == *(byte *)pp_Var34;" (assignment_expression "bVar36 = *pbVar31 == *(byte *)pp_Var34" identifier = (binary_expression "*pbVar31 == *(byte *)pp_Var34" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*(byte *)pp_Var34" * (cast_expression "(byte *)pp_Var34" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);" (assignment_expression "pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var34 + (uint)bVar39 * -2 + 1)" ( (binary_expression "(int)pp_Var34 + (uint)bVar39 * -2 + 1" (binary_expression "(int)pp_Var34 + (uint)bVar39 * -2" (cast_expression "(int)pp_Var34" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar36)" ( identifier )) ;) (expression_statement "cVar23 = (!bVar37 && !bVar36) - bVar37;" (assignment_expression "cVar23 = (!bVar37 && !bVar36) - bVar37" identifier = (binary_expression "(!bVar37 && !bVar36) - bVar37" (parenthesized_expression "(!bVar37 && !bVar36)" ( (binary_expression "!bVar37 && !bVar36" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar36" ! identifier)) )) - identifier)) ;) (expression_statement "pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);" (assignment_expression "pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var16 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var16 + 7)" ( (binary_expression "(int)pp_Var16 + 7" (cast_expression "(int)pp_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (cVar23 != '\0') {\n            pp_Var16 = local_c4;\n          }" if (parenthesized_expression "(cVar23 != '\0')" ( (binary_expression "cVar23 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pp_Var16 = local_c4;\n          }" { (expression_statement "pp_Var16 = local_c4;" (assignment_expression "pp_Var16 = local_c4" identifier = identifier) ;) })) (expression_statement "local_c4 = pp_Var16;" (assignment_expression "local_c4 = pp_Var16" identifier = identifier) ;) }))) (expression_statement "_Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);" (assignment_expression "_Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23)" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "CONCAT31((int3)((uint)pGVar24 >> 8),cVar23)" identifier (argument_list "((int3)((uint)pGVar24 >> 8),cVar23)" ( (call_expression "(int3)((uint)pGVar24 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)pGVar24 >> 8)" ( (binary_expression "(uint)pGVar24 >> 8" (cast_expression "(uint)pGVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier ))))) ;) (if_statement "if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }" if (parenthesized_expression "(local_b6 != '\0')" ( (binary_expression "local_b6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));\n          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }\n          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;\n          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;\n          src_id.first = local_d8;\n          src_id.second = 0;\n          local_2c = local_ac;\n          local_28._M_p = (pointer)((int)local_ac >> 0x1f);\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));\n          src_id.second = 0;\n          puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          src_id.first = *(Relobj **)prelocs;\n          if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;\n          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));\n          _Var25._M_p = (pointer)extraout_EDX_01;\n        }" { (if_statement "if (local_b5 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }" if (parenthesized_expression "(local_b5 == 0)" ( (binary_expression "local_b5 == 0" identifier == number_literal) )) (compound_statement "{\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }" { (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }" else (compound_statement "{\n            src_id.first = (Relobj *)local_b0;\n            src_id.second = (uint)local_a8;\n          }" { (expression_statement "src_id.first = (Relobj *)local_b0;" (assignment_expression "src_id.first = (Relobj *)local_b0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_b0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_a8;" (assignment_expression "src_id.second = (uint)local_a8" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_a8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;" (assignment_expression "*(mapped_type **)((int)ppGVar29 + -0x10) = local_c0" (pointer_expression "*(mapped_type **)((int)ppGVar29 + -0x10)" * (cast_expression "(mapped_type **)((int)ppGVar29 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (Icf *)&src_id;" (assignment_expression "local_a0 = (Icf *)&src_id" identifier = (cast_expression "(Icf *)&src_id" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::" (comma_expression "std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n          vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n          ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc))" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)" ( (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "vector<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "vector<std::pair<gold" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> **)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> **" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;" (assignment_expression "ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish" identifier = (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl" (parenthesized_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "local_c8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_c8->super__Vector_base<gold::Symbol*" (binary_expression "local_c8->super__Vector_base<gold" (field_expression "local_c8->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }\n          else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }" if (parenthesized_expression "(ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage)" ( (binary_expression "ppSVar5 ==\n              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" identifier == (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_c8->super__Vector_base<gold" (field_expression "local_c8->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;\n            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;\n            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));\n          }" { (expression_statement "*(Section_id **)((int)ppGVar29 + -8) = &src_id_1;" (assignment_expression "*(Section_id **)((int)ppGVar29 + -8) = &src_id_1" (pointer_expression "*(Section_id **)((int)ppGVar29 + -8)" * (cast_expression "(Section_id **)((int)ppGVar29 + -8)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "*(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;" (assignment_expression "*(pointer *)((int)ppGVar29 + -0xc) = ppSVar5" (pointer_expression "*(pointer *)((int)ppGVar29 + -0xc)" * (cast_expression "(pointer *)((int)ppGVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;" (assignment_expression "*(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8" (pointer_expression "*(Symbol_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Symbol_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::\n            _M_realloc_insert<gold" (binary_expression "Symbol*>_>::\n            _M_realloc_insert" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8));" (binary_expression "Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8))" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)" ( (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **" (binary_expression "vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "vector<gold::Symbol*,_std::allocator<gold" (binary_expression "vector<gold::Symbol*,_std" (binary_expression "vector<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),\n                       *(Symbol ***)((int)ppGVar29 + -8)" (binary_expression "(iterator)*(Symbol ***)((int)ppGVar29 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(Symbol ***)((int)ppGVar29 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)ppGVar29 + -8)" * (cast_expression "(Symbol ***)((int)ppGVar29 + -8)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;) }) (else_clause "else {\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }" else (compound_statement "{\n            *ppSVar5 = (Symbol *)src_id_1.first;\n            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;\n          }" { (expression_statement "*ppSVar5 = (Symbol *)src_id_1.first;" (assignment_expression "*ppSVar5 = (Symbol *)src_id_1.first" (pointer_expression "*ppSVar5" * identifier) = (cast_expression "(Symbol *)src_id_1.first" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "src_id_1.first" identifier . field_identifier))) ;) (expression_statement "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1;" (assignment_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar5 + 1" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_c8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_c8->super__Vector_base<gold" (field_expression "local_c8->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "ppSVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(Icf **)((int)ppGVar29 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -0xc)" * (cast_expression "(Icf **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;" (assignment_expression "*(Addend_info **)((int)ppGVar29 + -0x10) = local_dc" (pointer_expression "*(Addend_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Addend_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = local_d8;" (assignment_expression "src_id.first = local_d8" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28._M_p = (pointer)((int)local_ac >> 0x1f);" (assignment_expression "local_28._M_p = (pointer)((int)local_ac >> 0x1f)" (field_expression "local_28._M_p" identifier . field_identifier) = (call_expression "(pointer)((int)local_ac >> 0x1f)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_ac >> 0x1f)" ( (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "_long_long_int>_>_>\n          ::emplace_back" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));" (comma_expression "pair<long_long_int,_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc))" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc))" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)" ( (ERROR "vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::" (comma_expression "vector<std::pair<long_long_int,_long_long_int>,_std" (binary_expression "vector<std::pair<long_long_int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<long_long_int,_long_long_int>_>_>\n                       **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n                       **" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(pair<long_long_int,_long_long_int> **)" ( (comma_expression "pair<long_long_int,_long_long_int> **" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar4 = (local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\n                   super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "src_id.first = *(Relobj **)prelocs;" (assignment_expression "src_id.first = *(Relobj **)prelocs" (field_expression "src_id.first" identifier . field_identifier) = (pointer_expression "*(Relobj **)prelocs" * (cast_expression "(Relobj **)prelocs" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }\n          else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" if (parenthesized_expression "(puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar4 == (local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" identifier == (field_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\n                        super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n            *(Icf **)((int)ppGVar29 + -8) = local_a0;\n            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;\n            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;\n            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;\n            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));\n          }" { (expression_statement "*(Icf **)((int)ppGVar29 + -8) = local_a0;" (assignment_expression "*(Icf **)((int)ppGVar29 + -8) = local_a0" (pointer_expression "*(Icf **)((int)ppGVar29 + -8)" * (cast_expression "(Icf **)((int)ppGVar29 + -8)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppGVar29 + -0xc) = puVar4;" (assignment_expression "*(pointer *)((int)ppGVar29 + -0xc) = puVar4" (pointer_expression "*(pointer *)((int)ppGVar29 + -0xc)" * (cast_expression "(pointer *)((int)ppGVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;" (assignment_expression "*(Offset_info **)((int)ppGVar29 + -0x10) = local_cc" (pointer_expression "*(Offset_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Offset_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::\n            _M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));" statement_identifier (ERROR "::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>:" : : (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "_M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8));" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const&>\n                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8))" (binary_expression "_M_realloc_insert<long_long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "(*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)" ( (ERROR "vector<long_long_unsigned_int,_std::" (comma_expression "vector<long_long_unsigned_int,_std" (binary_expression "vector<long_long_unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_> **" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),\n                       *(ulonglong **)((int)ppGVar29 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)ppGVar29 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)ppGVar29 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)ppGVar29 + -8)" * (cast_expression "(ulonglong **)((int)ppGVar29 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -8)" ( (binary_expression "(int)ppGVar29 + -8" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar4 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar4 + 4) = 0;\n            (local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;\n          }" { (expression_statement "*(Relobj **)puVar4 = *(Relobj **)prelocs;" (assignment_expression "*(Relobj **)puVar4 = *(Relobj **)prelocs" (pointer_expression "*(Relobj **)puVar4" * (cast_expression "(Relobj **)puVar4" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "*(Relobj **)prelocs" * (cast_expression "(Relobj **)prelocs" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)puVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar4 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar4 + 4)" * (cast_expression "(undefined4 *)((int)puVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 4)" ( (binary_expression "(int)puVar4 + 4" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1;" (assignment_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar4 + 1" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_cc->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_cc->\n            super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_long_unsigned_int>_>" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }))) (expression_statement "dst_id.first = (Relobj *)0x0;" (assignment_expression "dst_id.first = (Relobj *)0x0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)ppGVar29 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)ppGVar29 + -0xc)" * (cast_expression "(Section_id **)((int)ppGVar29 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;" (assignment_expression "*(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0" (pointer_expression "*(Reloc_addend_size_info **)((int)ppGVar29 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)ppGVar29 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));" statement_identifier (ERROR "::vector<unsigned_int,_std::allocator<unsigned_int>_>:" : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)\n                      ((int)ppGVar29 + -0x10)" (parenthesized_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)" ( (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_> **" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)ppGVar29 + -0xc)" * (cast_expression "(uint **)((int)ppGVar29 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0xc)" ( (binary_expression "(int)ppGVar29 + -0xc" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (expression_statement "_Var25._M_p = (pointer)extraout_EDX_01;" (assignment_expression "_Var25._M_p = (pointer)extraout_EDX_01" (field_expression "_Var25._M_p" identifier . field_identifier) = (cast_expression "(pointer)extraout_EDX_01" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) })) (expression_statement "puVar28 = ppGVar29;" (assignment_expression "puVar28 = ppGVar29" identifier = identifier) ;) (if_statement "if (local_b5 != 0) goto LAB_0008ee30;" if (parenthesized_expression "(local_b5 != 0)" ( (binary_expression "local_b5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008ee30;" goto statement_identifier ;)) }) (ERROR "LAB_0008eae9:\n      local_d4 = local_d4 + 1;\n      prelocs = prelocs + 0xc;\n    } while (reloc_count != local_d4" identifier : identifier = identifier + number_literal ; identifier = identifier + number_literal ; } while ( identifier != identifier) )) )))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_e8) {\n    *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;\n    operator_delete(*(void **)((int)ppGVar29 + -0x10));\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_e8)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_e8)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != local_e8" (binary_expression "allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)src_section_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;\n    operator_delete(*(void **)((int)ppGVar29 + -0x10));\n  }" { (expression_statement "*(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppGVar29 + -0x10)" * (cast_expression "(pointer *)((int)ppGVar29 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;" (assignment_expression "*(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea" (pointer_expression "*(undefined4 *)((int)ppGVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)ppGVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppGVar29 + -0x14)" ( (binary_expression "(int)ppGVar29 + -0x14" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppGVar29 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppGVar29 + -0x10))" identifier (argument_list "(*(void **)((int)ppGVar29 + -0x10))" ( (pointer_expression "*(void **)((int)ppGVar29 + -0x10)" * (cast_expression "(void **)((int)ppGVar29 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppGVar29 + -0x10)" ( (binary_expression "(int)ppGVar29 + -0x10" (cast_expression "(int)ppGVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (return_statement "return;" return ;) }))
(translation_unit "void FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "code *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined4 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "int param_12" primitive_type identifier) ))) (compound_statement "{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "code cVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "code **ppcVar5;" type_identifier (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined **extraout_EDX_02;" type_identifier (pointer_declarator "**extraout_EDX_02" * (pointer_declarator "*extraout_EDX_02" * identifier)) ;) (declaration "int extraout_EDX_03;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_05;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_06;" type_identifier identifier ;) (declaration "code *extraout_EDX_07;" type_identifier (pointer_declarator "*extraout_EDX_07" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "code *unaff_ESI;" type_identifier (pointer_declarator "*unaff_ESI" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "ulonglong uVar27;" type_identifier identifier ;) (declaration "longlong lVar28;" type_identifier identifier ;) (declaration "int iStack_f0;" primitive_type identifier ;) (declaration "undefined1 auStack_ec [4];" type_identifier (array_declarator "auStack_ec [4]" identifier [ number_literal ]) ;) (declaration "code *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "code **local_e4;" type_identifier (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier)) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "code *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "code *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "undefined1 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "int *local_bc;" primitive_type (pointer_declarator "*local_bc" * identifier) ;) (declaration "char local_b7;" primitive_type identifier ;) (declaration "char local_b6;" primitive_type identifier ;) (declaration "byte local_b5;" type_identifier identifier ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "code *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "code *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "code **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "code **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "code **local_88;" type_identifier (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)) ;) (declaration "code *local_84 [3];" type_identifier (pointer_declarator "*local_84 [3]" * (array_declarator "local_84 [3]" identifier [ number_literal ])) ;) (declaration "code *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "code **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "code **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "code *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "code *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "code *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "code *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "code *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "code *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "code *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = &__DT_PLTGOT;" (assignment_expression "local_a4 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_6 == 9) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 9)" ( (binary_expression "param_6 == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "local_bc = &DAT_005ea7c8;" (assignment_expression "local_bc = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "iVar17 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar17 = *(int *)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "iStack_f0 = iVar17;" (assignment_expression "iStack_f0 = iVar17" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x5934) == 0" (pointer_expression "*(int *)(iVar17 + 0x5934)" * (cast_expression "(int *)(iVar17 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x5934)" ( (binary_expression "iVar17 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }" { (expression_statement "local_e8 = (code *)local_44;" (assignment_expression "local_e8 = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_e8;" (assignment_expression "local_4c[0] = local_e8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00072b90(local_4c,"","");" (call_expression "FUN_00072b90(local_4c,"","")" identifier (argument_list "(local_4c,"","")" ( identifier , (string_literal """" " ") , (string_literal """" " ") ))) ;) (expression_statement "piVar16 = (int *)auStack_ec;" (assignment_expression "piVar16 = (int *)auStack_ec" identifier = (cast_expression "(int *)auStack_ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" else (compound_statement "{\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" { (expression_statement "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*(uint *)param_4 + 0x40))" ( (pointer_expression "**(code **)(*(uint *)param_4 + 0x40)" * (pointer_expression "*(code **)(*(uint *)param_4 + 0x40)" * (cast_expression "(code **)(*(uint *)param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(uint *)param_4 + 0x40)" ( (binary_expression "*(uint *)param_4 + 0x40" (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_e8 = (code *)local_44;" (assignment_expression "local_e8 = (code *)local_44" identifier = (cast_expression "(code *)local_44" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar16 = &iStack_f0;" (assignment_expression "piVar16 = &iStack_f0" identifier = (pointer_expression "&iStack_f0" & identifier)) ;) }))) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "pcVar8 = *(code **)(iVar17 + 8);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 8)" identifier = (pointer_expression "*(code **)(iVar17 + 8)" * (cast_expression "(code **)(iVar17 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(pcVar8 == (code *)0x0)" ( (binary_expression "pcVar8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }" { (expression_statement "*(int *)((int)piVar16 + -4) = iVar17;" (assignment_expression "*(int *)((int)piVar16 + -4) = iVar17" (pointer_expression "*(int *)((int)piVar16 + -4)" * (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" if (parenthesized_expression "(*(uint *)(pcVar8 + 0x5934) == 0)" ( (binary_expression "*(uint *)(pcVar8 + 0x5934) == 0" (pointer_expression "*(uint *)(pcVar8 + 0x5934)" * (cast_expression "(uint *)(pcVar8 + 0x5934)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x5934)" ( (binary_expression "pcVar8 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }" { (labeled_statement "LAB_0008e94f:\n    local_b6 = '\0';" statement_identifier : (expression_statement "local_b6 = '\0';" (assignment_expression "local_b6 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "lVar28 = ZEXT48(pcVar8) << 0x20;" (assignment_expression "lVar28 = ZEXT48(pcVar8) << 0x20" identifier = (binary_expression "ZEXT48(pcVar8) << 0x20" (call_expression "ZEXT48(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) << number_literal)) ;) }) (else_clause "else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" else (compound_statement "{\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" { (expression_statement "local_a8 = (code *)&local_2c;" (assignment_expression "local_a8 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "pcVar8 = (code *)0xffffffff;" (assignment_expression "pcVar8 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }" if (parenthesized_expression "(local_4c[0] != (code *)0x0)" ( (binary_expression "local_4c[0] != (code *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f537" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar6 = strlen(*(char **)((int)piVar16 + -0x10));" (assignment_expression "sVar6 = strlen(*(char **)((int)piVar16 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)piVar16 + -0x10))" identifier (argument_list "(*(char **)((int)piVar16 + -0x10))" ( (pointer_expression "*(char **)((int)piVar16 + -0x10)" * (cast_expression "(char **)((int)piVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar8 = pcVar21 + sVar6;" (assignment_expression "pcVar8 = pcVar21 + sVar6" identifier = (binary_expression "pcVar21 + sVar6" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)piVar16 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -4)" * (cast_expression "(undefined4 *)((int)piVar16 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code **)((int)piVar16 + -8) = pcVar8;" (assignment_expression "*(code **)((int)piVar16 + -8) = pcVar8" (pointer_expression "*(code **)((int)piVar16 + -8)" * (cast_expression "(code **)((int)piVar16 + -8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code **)((int)piVar16 + -0xc) = pcVar21;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = pcVar21" (pointer_expression "*(code **)((int)piVar16 + -0xc)" * (cast_expression "(code **)((int)piVar16 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)((int)piVar16 + -0x10) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0x10) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0x10)" * (cast_expression "(code ***)((int)piVar16 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" identifier = number_literal) ;) (expression_statement "bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = piVar16 == (int *)0x0;" (assignment_expression "bVar24 = piVar16 == (int *)0x0" identifier = (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar13 = local_a4 + -0x67293;" (assignment_expression "ppuVar13 = local_a4 + -0x67293" identifier = (binary_expression "local_a4 + -0x67293" identifier + number_literal)) ;) (expression_statement "pcVar8 = local_34;" (assignment_expression "pcVar8 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar8" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar8" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" { (expression_statement "iVar17 = 0xf;" (assignment_expression "iVar17 = 0xf" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19ca46);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19ca46)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19ca46)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca46)" ( (binary_expression "(int)local_a4 + -0x19ca46" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_34;" (assignment_expression "pcVar21 = local_34" identifier = identifier) ;) (do_statement "do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);" do (compound_statement "{\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      }" { (expression_statement "unaff_ESI = pcVar8;" (assignment_expression "unaff_ESI = pcVar8" identifier = identifier) ;) (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar23 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar23 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = unaff_ESI;" (assignment_expression "pcVar8 = unaff_ESI" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" { (if_statement "if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" if (parenthesized_expression "(local_34 == local_a8)" ( (binary_expression "local_34 == local_a8" identifier == identifier) )) (compound_statement "{\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }" { (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "pcVar8 = local_34;" (assignment_expression "pcVar8 = local_34" identifier = identifier) ;) }) (else_clause "else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" else (compound_statement "{\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_34;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_34" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "pcVar8 = extraout_EDX_07;" (assignment_expression "pcVar8 = extraout_EDX_07" identifier = identifier) ;) }))) (goto_statement "goto LAB_0008e94f;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_34;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_34" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f801" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15" (pointer_expression "*(code ***)((int)piVar16 + -0x10)" * (cast_expression "(code ***)((int)piVar16 + -0x10)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a0 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar28 = FUN_00074520();" (assignment_expression "lVar28 = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_e0 = (int)lVar28;" (assignment_expression "local_e0 = (int)lVar28" identifier = (cast_expression "(int)lVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_c8 = local_e0 + 0xc;" (assignment_expression "local_c8 = local_e0 + 0xc" identifier = (binary_expression "local_e0 + 0xc" identifier + number_literal)) ;) (expression_statement "local_cc = local_e0 + 0x24;" (assignment_expression "local_cc = local_e0 + 0x24" identifier = (binary_expression "local_e0 + 0x24" identifier + number_literal)) ;) (expression_statement "unaff_ESI = (code *)(local_e0 + 0x18);" (assignment_expression "unaff_ESI = (code *)(local_e0 + 0x18)" identifier = (cast_expression "(code *)(local_e0 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + 0x18)" ( (binary_expression "local_e0 + 0x18" identifier + number_literal) )))) ;) (expression_statement "local_e0 = local_e0 + 0x30;" (assignment_expression "local_e0 = local_e0 + 0x30" identifier = (binary_expression "local_e0 + 0x30" identifier + number_literal)) ;) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (expression_statement "local_b6 = '\x01';" (assignment_expression "local_b6 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" identifier = identifier) ;) }))) (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 8) == 0)" ( (binary_expression "*(int *)(iVar17 + 8) == 0" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }" { (expression_statement "*(code **)((int)piVar16 + -4) = unaff_ESI;" (assignment_expression "*(code **)((int)piVar16 + -4) = unaff_ESI" (pointer_expression "*(code **)((int)piVar16 + -4)" * (cast_expression "(code **)((int)piVar16 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_b7 = '\0';" (assignment_expression "local_b7 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar17 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar17 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar17 + 8) + 0x5934" (pointer_expression "*(int *)(iVar17 + 8)" * (cast_expression "(int *)(iVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = param_1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b7 = FUN_000752e0();" (assignment_expression "local_b7 = FUN_000752e0()" identifier = (call_expression "FUN_000752e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_b7 == '\0';" (assignment_expression "bVar24 = local_b7 == '\0'" identifier = (binary_expression "local_b7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "lVar28 = CONCAT44(extraout_EDX_06,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX_06,local_c0)" identifier = (call_expression "CONCAT44(extraout_EDX_06,local_c0)" identifier (argument_list "(extraout_EDX_06,local_c0)" ( identifier , identifier )))) ;) (if_statement "if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "local_b7 = '\0';" (assignment_expression "local_b7 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppuVar13 = local_a4 + -0x66894;" (assignment_expression "ppuVar13 = local_a4 + -0x66894" identifier = (binary_expression "local_a4 + -0x66894" identifier + number_literal)) ;) (expression_statement "pcVar8 = local_4c[0];" (assignment_expression "pcVar8 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar8" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar8" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }" { (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a243);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a243)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19a243)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a243)" ( (binary_expression "(int)local_a4 + -0x19a243" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar23 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }" { (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a231);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a231)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19a231)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a231)" ( (binary_expression "(int)local_a4 + -0x19a231" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar24 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar24 && !bVar22) == bVar24;" (assignment_expression "bVar22 = (!bVar24 && !bVar22) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar22) == bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" ( (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }" { (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" identifier = number_literal) ;) (expression_statement "ppuVar13 = local_a4 + -0x66889;" (assignment_expression "ppuVar13 = local_a4 + -0x66889" identifier = (binary_expression "local_a4 + -0x66889" identifier + number_literal)) ;) (expression_statement "pcVar8 = local_4c[0];" (assignment_expression "pcVar8 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" identifier = (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar22 = *(code *)ppuVar13 == *pcVar8" identifier = (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pcVar8" * identifier))) ;) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }" { (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a212);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a212)" identifier = (cast_expression "(code *)((int)local_a4 + -0x19a212)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19a212)" ( (binary_expression "(int)local_a4 + -0x19a212" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);" do (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar24 = (byte)*pcVar8 < (byte)*pcVar21" identifier = (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" identifier = (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" * identifier) == (pointer_expression "*pcVar21" * identifier))) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "local_b7 = (!bVar24 && !bVar22) != bVar24;" (assignment_expression "local_b7 = (!bVar24 && !bVar22) != bVar24" identifier = (binary_expression "(!bVar24 && !bVar22) != bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" ( (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier)) ;) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" identifier = (call_expression "CONCAT44(local_4c[0],local_c0)" identifier (argument_list "(local_4c[0],local_c0)" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) , identifier )))) ;) })) })) })) })) })) })) (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" { (expression_statement "local_c4 = (byte *)0x0;" (assignment_expression "local_c4 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" identifier = identifier) ;) (expression_statement "local_e4 = &local_78;" (assignment_expression "local_e4 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);" do (compound_statement "{\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    }" { (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar19 = param_7[1] & 0xff;" (assignment_expression "uVar19 = param_7[1] & 0xff" identifier = (binary_expression "param_7[1] & 0xff" (subscript_expression "param_7[1]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar14 = (uint)param_7[1] >> 8;" (assignment_expression "uVar14 = (uint)param_7[1] >> 8" identifier = (binary_expression "(uint)param_7[1] >> 8" (cast_expression "(uint)param_7[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_7[1]" identifier [ number_literal ])) >> number_literal)) ;) (expression_statement "local_ac = param_7[2];" (assignment_expression "local_ac = param_7[2]" identifier = (subscript_expression "param_7[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" if (parenthesized_expression "(uVar14 < param_11)" ( (binary_expression "uVar14 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65ca7" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar17 = uVar14 * 0x10 + param_12;" (assignment_expression "iVar17 = uVar14 * 0x10 + param_12" identifier = (binary_expression "uVar14 * 0x10 + param_12" (binary_expression "uVar14 * 0x10" identifier * number_literal) + identifier)) ;) (expression_statement "local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);" (assignment_expression "local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe)" identifier = (binary_expression "(code *)(uint)*(ushort *)(iVar17 + 0xe)" (cast_expression "(code *)(uint)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar17 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xe)" ( (binary_expression "iVar17 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);" (assignment_expression "uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8)" identifier (argument_list "((int)((ulonglong)lVar28 >> 0x20),local_a8)" ( (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" if (parenthesized_expression "(local_a8 < (code *)0xff00)" ( (binary_expression "local_a8 < (code *)0xff00" identifier < (cast_expression "(code *)0xff00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }" { (labeled_statement "LAB_0008eb4e:\n          local_a8 = (code *)uVar26;" statement_identifier : (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pcVar8 = *(code **)(iVar17 + 4);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 4)" identifier = (pointer_expression "*(code **)(iVar17 + 4)" * (cast_expression "(code **)(iVar17 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = pcVar8 + local_ac;" (assignment_expression "local_b4 = pcVar8 + local_ac" identifier = (binary_expression "pcVar8 + local_ac" identifier + identifier)) ;) (if_statement "if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }" if (parenthesized_expression "(local_b6 != '\0')" ( (binary_expression "local_b6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = local_a8;" (assignment_expression "local_30 = local_a8" identifier = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_b0 = (code *)CONCAT31(local_b0._1_3_,1);" (assignment_expression "local_b0 = (code *)CONCAT31(local_b0._1_3_,1)" identifier = (cast_expression "(code *)CONCAT31(local_b0._1_3_,1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_b0._1_3_,1)" identifier (argument_list "(local_b0._1_3_,1)" ( (field_expression "local_b0._1_3_" identifier . field_identifier) , number_literal ))))) ;) (if_statement "if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;" if (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" * (cast_expression "(byte *)(iVar17 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0008ea48;" goto statement_identifier ;)) (labeled_statement "LAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0xffffffff;" (assignment_expression "local_34 = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0008ea63;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" else (compound_statement "{\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" { (if_statement "if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }" if (parenthesized_expression "(local_a8 == (code *)0xffff)" ( (binary_expression "local_a8 == (code *)0xffff" identifier == (cast_expression "(code *)0xffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }" { (expression_statement "uVar7 = *(uint *)(param_4 + 0x30);" (assignment_expression "uVar7 = *(uint *)(param_4 + 0x30)" identifier = (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }" { (expression_statement "uVar7 = *(uint *)param_4;" (assignment_expression "uVar7 = *(uint *)param_4" identifier = (pointer_expression "*(uint *)param_4" * (cast_expression "(uint *)param_4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(code **)((int)piVar16 + -0x10) = param_4;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = param_4" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = *(code **)(uVar7 + 0x6c);" (assignment_expression "pcVar8 = *(code **)(uVar7 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar7 + 0x6c)" * (cast_expression "(code **)(uVar7 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar7 + 0x6c)" ( (binary_expression "uVar7 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = (*pcVar8)();" (assignment_expression "uVar7 = (*pcVar8)()" identifier = (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(param_4 + 0x30) = uVar7;" (assignment_expression "*(uint *)(param_4 + 0x30) = uVar7" (pointer_expression "*(uint *)(param_4 + 0x30)" * (cast_expression "(uint *)(param_4 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)((int)piVar16 + -8) = uVar14;" (assignment_expression "*(uint *)((int)piVar16 + -8) = uVar14" (pointer_expression "*(uint *)((int)piVar16 + -8)" * (cast_expression "(uint *)((int)piVar16 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)piVar16 + -0xc) = param_4;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = param_4" (pointer_expression "*(code **)((int)piVar16 + -0xc)" * (cast_expression "(code **)((int)piVar16 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)piVar16 + -0x10) = uVar7;" (assignment_expression "*(uint *)((int)piVar16 + -0x10) = uVar7" (pointer_expression "*(uint *)((int)piVar16 + -0x10)" * (cast_expression "(uint *)((int)piVar16 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar26 = FUN_0028b7d0();" (assignment_expression "uVar26 = FUN_0028b7d0()" identifier = (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0008eb4e;" goto statement_identifier ;) })) (expression_statement "pcVar8 = *(code **)(iVar17 + 4);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 4)" identifier = (pointer_expression "*(code **)(iVar17 + 4)" * (cast_expression "(code **)(iVar17 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = pcVar8 + local_ac;" (assignment_expression "local_b4 = pcVar8 + local_ac" identifier = (binary_expression "pcVar8 + local_ac" identifier + identifier)) ;) (if_statement "if (local_b6 == '\0') goto LAB_0008eae9;" if (parenthesized_expression "(local_b6 == '\0')" ( (binary_expression "local_b6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008eae9;" goto statement_identifier ;)) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_b0 = (code *)((uint)local_b0 & 0xffffff00);" (assignment_expression "local_b0 = (code *)((uint)local_b0 & 0xffffff00)" identifier = (cast_expression "(code *)((uint)local_b0 & 0xffffff00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_b0 & 0xffffff00)" ( (binary_expression "(uint)local_b0 & 0xffffff00" (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;" if (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" * (cast_expression "(byte *)(iVar17 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0008ebac;" goto statement_identifier ;)) (labeled_statement "LAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;" statement_identifier : (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(code **)((int)piVar16 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_dc" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = pcVar8;" (assignment_expression "local_34 = pcVar8" identifier = identifier) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (code *)*param_7;" (assignment_expression "local_34 = (code *)*param_7" identifier = (cast_expression "(code *)*param_7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)piVar16 + -8) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -8) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -8)" * (cast_expression "(code ***)((int)piVar16 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_cc;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_cc" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = local_34;" (assignment_expression "*puVar2 = local_34" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_e0" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar26 = CONCAT44(extraout_EDX,local_a8);" (assignment_expression "uVar26 = CONCAT44(extraout_EDX,local_a8)" identifier = (call_expression "CONCAT44(extraout_EDX,local_a8)" identifier (argument_list "(extraout_EDX,local_a8)" ( identifier , identifier )))) ;) (expression_statement "lVar28 = CONCAT44(extraout_EDX,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX,local_c0)" identifier = (call_expression "CONCAT44(extraout_EDX,local_c0)" identifier (argument_list "(extraout_EDX,local_c0)" ( identifier , identifier )))) ;) (if_statement "if ((char)local_b0 == '\0') goto LAB_0008eae9;" if (parenthesized_expression "((char)local_b0 == '\0')" ( (binary_expression "(char)local_b0 == '\0'" (cast_expression "(char)local_b0" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008eae9;" goto statement_identifier ;)) }))) (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }" if (parenthesized_expression "((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1))" ( (binary_expression "(local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)" (parenthesized_expression "(local_b7 != '\0')" ( (binary_expression "local_b7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" * (cast_expression "(byte *)(iVar17 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }" { (if_statement "if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_bc + 8) == 0)" ( (binary_expression "*(int *)(*local_bc + 8) == 0" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }" { (expression_statement "*(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);" (assignment_expression "*(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20)" (pointer_expression "*(int *)((int)piVar16 + -4)" * (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f775" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_bc + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_bc + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_bc + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_bc + 8) + 0x1a25" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }" { (if_statement "if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }" if (parenthesized_expression "(uVar19 < 0x2b)" ( (binary_expression "uVar19 < 0x2b" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }" { (expression_statement "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();" (call_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))()" (parenthesized_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))" ( (pointer_expression "*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" * (cast_expression "(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" ( (binary_expression "(int)local_a4 + (int)local_a4[uVar19 - 0x65eef]" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_a4[uVar19 - 0x65eef]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a4[uVar19 - 0x65eef]" identifier [ (binary_expression "uVar19 - 0x65eef" identifier - number_literal) ]))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" else (compound_statement "{\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" { (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "local_68 = (uint)*(ushort *)(iVar17 + 0xe);" (assignment_expression "local_68 = (uint)*(ushort *)(iVar17 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)(iVar17 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar17 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xe)" ( (binary_expression "iVar17 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_8c = local_a0 + 0xd;" (assignment_expression "local_8c = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ****)((int)piVar16 + -0x14) = &local_8c;" (assignment_expression "*(code ****)((int)piVar16 + -0x14) = &local_8c" (pointer_expression "*(code ****)((int)piVar16 + -0x14)" * (cast_expression "(code ****)((int)piVar16 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x18) = &local_6c;" (assignment_expression "*(code ***)((int)piVar16 + -0x18) = &local_6c" (pointer_expression "*(code ***)((int)piVar16 + -0x18)" * (cast_expression "(code ***)((int)piVar16 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x18)" ( (binary_expression "(int)piVar16 + -0x18" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x1c) = local_8c;" (assignment_expression "*(code ***)((int)piVar16 + -0x1c) = local_8c" (pointer_expression "*(code ***)((int)piVar16 + -0x1c)" * (cast_expression "(code ***)((int)piVar16 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x1c)" ( (binary_expression "(int)piVar16 + -0x1c" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)piVar16 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)piVar16 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)piVar16 + -0x20)" * (cast_expression "(undefined1 **)((int)piVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x20)" ( (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_6c = param_4;" (assignment_expression "local_6c = param_4" identifier = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x24)" ( (binary_expression "(int)piVar16 + -0x24" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar26 = CONCAT44(extraout_EDX_04,local_a8);" (assignment_expression "uVar26 = CONCAT44(extraout_EDX_04,local_a8)" identifier = (call_expression "CONCAT44(extraout_EDX_04,local_a8)" identifier (argument_list "(extraout_EDX_04,local_a8)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)((int)piVar16 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar16 + -4)" identifier = (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })) (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);" (assignment_expression "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier = (call_expression "CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier (argument_list "((int)((ulonglong)uVar26 >> 0x20),local_c0)" ( (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_5 != local_a8)" ( (binary_expression "param_5 != local_a8" identifier != identifier) )) (compound_statement "{\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_b0 = param_4;" (assignment_expression "local_b0 = param_4" identifier = identifier) ;) (expression_statement "puVar15 = (undefined1 *)piVar16;" (assignment_expression "puVar15 = (undefined1 *)piVar16" identifier = (cast_expression "(undefined1 *)piVar16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0008ee30:\n          local_a8 = (code *)uVar26;" statement_identifier : (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" identifier = (cast_expression "(code *)uVar26" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);" (assignment_expression "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier = (call_expression "CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" identifier (argument_list "((int)((ulonglong)uVar26 >> 0x20),local_c0)" ( (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (if_statement "if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_bc + 8) == 0)" ( (binary_expression "*(int *)(*local_bc + 8) == 0" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar15 + -8)" * (cast_expression "(undefined ***)(puVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f71a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f71a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar16 = (int *)puVar15;" (assignment_expression "piVar16 = (int *)puVar15" identifier = (cast_expression "(int *)puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_bc + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_bc + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_bc + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_bc + 8) + 0x18b1" (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158) + 0x14" identifier = (binary_expression "*(int *)(param_2 + 0x158) + 0x14" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_58 = param_5;" (assignment_expression "local_58 = param_5" identifier = identifier) ;) (expression_statement "local_54 = local_b0;" (assignment_expression "local_54 = local_b0" identifier = identifier) ;) (expression_statement "local_50 = local_a8;" (assignment_expression "local_50 = local_a8" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0x158) + 0x18)" * (cast_expression "(int *)(*(int *)(param_2 + 0x158) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x18)" ( (binary_expression "*(int *)(param_2 + 0x158) + 0x18" (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar9 = iVar17;" (assignment_expression "iVar9 = iVar17" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }" { (labeled_statement "LAB_0008eec0:\n              local_74 = &local_5c;" statement_identifier : (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;)) (expression_statement "*(code ****)(puVar15 + -0x10) = &local_74;" (assignment_expression "*(code ****)(puVar15 + -0x10) = &local_74" (pointer_expression "*(code ****)(puVar15 + -0x10)" * (cast_expression "(code ****)(puVar15 + -0x10)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8eedb;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8eedb" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" else (compound_statement "{\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" { (do_statement "do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);" do (compound_statement "{\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              }" { (while_statement "while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }" while (parenthesized_expression "((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar4" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 <= *(code **)(iVar10 + 0x14)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }" { (expression_statement "iVar4 = *(int *)(iVar10 + 8);" (assignment_expression "iVar4 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;" if (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" ( (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0008eeaa;" goto statement_identifier ;)) })) (expression_statement "piVar16 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar16 = (int *)(iVar10 + 0xc)" identifier = (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar16 != 0)" ( (binary_expression "*piVar16 != 0" (pointer_expression "*piVar16" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;" statement_identifier : (if_statement "if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;" if (parenthesized_expression "(((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))" ( (binary_expression "((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))))" (parenthesized_expression "((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar17 == iVar10)" ( (binary_expression "iVar17 == iVar10" identifier == identifier) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 < *(code **)(iVar10 + 0x14)" identifier < (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0008eec0;" goto statement_identifier ;))) }))) (expression_statement "local_78 = (code *)(iVar10 + 0x18);" (assignment_expression "local_78 = (code *)(iVar10 + 0x18)" identifier = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = local_e4;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_e4" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar15 + -0x18) = &local_54;" (assignment_expression "*(code ***)(puVar15 + -0x18) = &local_54" (pointer_expression "*(code ***)(puVar15 + -0x18)" * (cast_expression "(code ***)(puVar15 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(code **)(puVar15 + -0x1c) = local_78;" (assignment_expression "*(code **)(puVar15 + -0x1c) = local_78" (pointer_expression "*(code **)(puVar15 + -0x1c)" * (cast_expression "(code **)(puVar15 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8ef07;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8ef07" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar16 = *(int **)(*local_bc + 0xc);" (assignment_expression "piVar16 = *(int **)(*local_bc + 0xc)" identifier = (pointer_expression "*(int **)(*local_bc + 0xc)" * (cast_expression "(int **)(*local_bc + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_bc + 0xc)" ( (binary_expression "*local_bc + 0xc" (pointer_expression "*local_bc" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;" (assignment_expression "*(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e" (pointer_expression "*(undefined ***)(puVar15 + -0xc)" * (cast_expression "(undefined ***)(puVar15 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65c0e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8f759;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8f759" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar13 = *(undefined ***)(*piVar16 + 0x104);" (assignment_expression "ppuVar13 = *(undefined ***)(*piVar16 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar16 + 0x104)" * (cast_expression "(undefined ***)(*piVar16 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar16 + 0x104)" ( (binary_expression "*piVar16 + 0x104" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" if (parenthesized_expression "(ppuVar13 != local_a4 + -0x15e474)" ( (binary_expression "ppuVar13 != local_a4 + -0x15e474" identifier != (binary_expression "local_a4 + -0x15e474" identifier + number_literal)) )) (compound_statement "{\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" { (expression_statement "*(code **)(puVar15 + -0xc) = local_b4;" (assignment_expression "*(code **)(puVar15 + -0xc) = local_b4" (pointer_expression "*(code **)(puVar15 + -0xc)" * (cast_expression "(code **)(puVar15 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x10) = local_a8;" (assignment_expression "*(code **)(puVar15 + -0x10) = local_a8" (pointer_expression "*(code **)(puVar15 + -0x10)" * (cast_expression "(code **)(puVar15 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x14) = local_b0;" (assignment_expression "*(code **)(puVar15 + -0x14) = local_b0" (pointer_expression "*(code **)(puVar15 + -0x14)" * (cast_expression "(code **)(puVar15 + -0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x18) = param_5;" (assignment_expression "*(code **)(puVar15 + -0x18) = param_5" (pointer_expression "*(code **)(puVar15 + -0x18)" * (cast_expression "(code **)(puVar15 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(code **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(code **)(puVar15 + -0x1c)" * (cast_expression "(code **)(puVar15 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_2" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar15 + -0x24) = piVar16;" (assignment_expression "*(int **)(puVar15 + -0x24) = piVar16" (pointer_expression "*(int **)(puVar15 + -0x24)" * (cast_expression "(int **)(puVar15 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = 0x8f0b1" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar13)();" (call_expression "(*(code *)ppuVar13)()" (parenthesized_expression "(*(code *)ppuVar13)" ( (pointer_expression "*(code *)ppuVar13" * (cast_expression "(code *)ppuVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar13 = extraout_EDX_02;" (assignment_expression "ppuVar13 = extraout_EDX_02" identifier = identifier) ;) })) (expression_statement "pbVar3 = local_c4;" (assignment_expression "pbVar3 = local_c4" identifier = identifier) ;) (expression_statement "lVar28 = CONCAT44(ppuVar13,local_c0);" (assignment_expression "lVar28 = CONCAT44(ppuVar13,local_c0)" identifier = (call_expression "CONCAT44(ppuVar13,local_c0)" identifier (argument_list "(ppuVar13,local_c0)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(puVar15 + -4);" (assignment_expression "piVar16 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (if_statement "if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 != (byte *)0x0)" ( (binary_expression "local_c4 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }" { (expression_statement "local_a8 = (code *)&local_2c;" (assignment_expression "local_a8 = (code *)&local_2c" identifier = (cast_expression "(code *)&local_2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar15 + -0x14) = local_c4;" (assignment_expression "*(byte **)(puVar15 + -0x14) = local_c4" (pointer_expression "*(byte **)(puVar15 + -0x14)" * (cast_expression "(byte **)(puVar15 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef76;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef76" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar6 = strlen(*(char **)(puVar15 + -0x14));" (assignment_expression "sVar6 = strlen(*(char **)(puVar15 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar15 + -0x14))" identifier (argument_list "(*(char **)(puVar15 + -0x14))" ( (pointer_expression "*(char **)(puVar15 + -0x14)" * (cast_expression "(char **)(puVar15 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppcVar5 = local_a0;" (assignment_expression "ppcVar5 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;" (assignment_expression "*(byte **)(puVar15 + -0xc) = pbVar3 + sVar6" (pointer_expression "*(byte **)(puVar15 + -0xc)" * (cast_expression "(byte **)(puVar15 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar3 + sVar6" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar15 + -0x10) = pbVar3;" (assignment_expression "*(byte **)(puVar15 + -0x10) = pbVar3" (pointer_expression "*(byte **)(puVar15 + -0x10)" * (cast_expression "(byte **)(puVar15 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = local_a0;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_a0" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef8b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(code ***)(puVar15 + -0xc) = ppcVar5;" (assignment_expression "*(code ***)(puVar15 + -0xc) = ppcVar5" (pointer_expression "*(code ***)(puVar15 + -0xc)" * (cast_expression "(code ***)(puVar15 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x10) = iVar17 + 0x44;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar17 + 0x44" (pointer_expression "*(int *)(puVar15 + -0x10)" * (cast_expression "(int *)(puVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar17 + 0x44" identifier + number_literal)) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = &local_9c;" (assignment_expression "*(code ***)(puVar15 + -0x14) = &local_9c" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef9f" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar8 = local_9c;" (assignment_expression "pcVar8 = local_9c" identifier = identifier) ;) (if_statement "if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }" { (expression_statement "*(code **)(puVar15 + -0x18) = local_34;" (assignment_expression "*(code **)(puVar15 + -0x18) = local_34" (pointer_expression "*(code **)(puVar15 + -0x18)" * (cast_expression "(code **)(puVar15 + -0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0x8efc2" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar16 = (int *)(puVar15 + -8);" (assignment_expression "piVar16 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (expression_statement "iVar17 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158)" identifier = (pointer_expression "*(int *)(param_2 + 0x158)" * (cast_expression "(int *)(param_2 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x158)" ( (binary_expression "param_2 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "lVar28 = CONCAT44(iVar17,local_c0);" (assignment_expression "lVar28 = CONCAT44(iVar17,local_c0)" identifier = (call_expression "CONCAT44(iVar17,local_c0)" identifier (argument_list "(iVar17,local_c0)" ( identifier , identifier )))) ;) (if_statement "if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }" if (parenthesized_expression "(pcVar8 != (code *)(iVar17 + 0x48))" ( (binary_expression "pcVar8 != (code *)(iVar17 + 0x48)" identifier != (cast_expression "(code *)(iVar17 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x48)" ( (binary_expression "iVar17 + 0x48" identifier + number_literal) )))) )) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }" { (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" identifier = identifier) ;) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar4 = *(int *)(iVar17 + 0x18)" identifier = (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar17 + 0x14;" (assignment_expression "iVar9 = iVar17 + 0x14" identifier = (binary_expression "iVar17 + 0x14" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" if (parenthesized_expression "(*(int *)(iVar17 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x18) == 0" (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }" { (labeled_statement "LAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;" statement_identifier : (expression_statement "*(code ****)(puVar15 + -0x18) = &local_70;" (assignment_expression "*(code ****)(puVar15 + -0x18) = &local_70" (pointer_expression "*(code ****)(puVar15 + -0x18)" * (cast_expression "(code ****)(puVar15 + -0x18)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_70" & identifier)) ;)) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0x8f116;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0x8f116" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" identifier = identifier) ;) (expression_statement "iVar17 = extraout_EDX_03;" (assignment_expression "iVar17 = extraout_EDX_03" identifier = identifier) ;) }) (else_clause "else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" else (compound_statement "{\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" { (do_statement "do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);" do (compound_statement "{\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  }" { (while_statement "while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }" while (parenthesized_expression "((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))))" ( (parenthesized_expression "(iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))" ( (comma_expression "iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar4" identifier = identifier) , (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" ( (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))" ( (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" identifier != (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_5 <= *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 <= *(code **)(iVar10 + 0x14)" identifier <= (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }" { (expression_statement "iVar4 = *(int *)(iVar10 + 8);" (assignment_expression "iVar4 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;" if (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" ( (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0008f022;" goto statement_identifier ;)) })) (expression_statement "piVar16 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar16 = (int *)(iVar10 + 0xc)" identifier = (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar16 != 0)" ( (binary_expression "*piVar16 != 0" (pointer_expression "*piVar16" * identifier) != number_literal) )) ;) (labeled_statement "LAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;" statement_identifier : (if_statement "if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;" if (parenthesized_expression "(((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      )))" ( (binary_expression "((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))" (parenthesized_expression "((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10)))" ( (binary_expression "(iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar17 + 0x14)" ( (binary_expression "iVar10 == iVar17 + 0x14" identifier == (binary_expression "iVar17 + 0x14" identifier + number_literal)) )) || (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" ( (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" identifier < (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))" ( (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      )" ( (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" identifier == (pointer_expression "*(code **)(iVar10 + 0x10)" * (cast_expression "(code **)(iVar10 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(param_5 < *(code **)(iVar10 + 0x14))" ( (binary_expression "param_5 < *(code **)(iVar10 + 0x14)" identifier < (pointer_expression "*(code **)(iVar10 + 0x14)" * (cast_expression "(code **)(iVar10 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0008f0f8;" goto statement_identifier ;))) }))) (expression_statement "lVar28 = CONCAT44(iVar17,local_c0);" (assignment_expression "lVar28 = CONCAT44(iVar17,local_c0)" identifier = (call_expression "CONCAT44(iVar17,local_c0)" identifier (argument_list "(iVar17,local_c0)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(puVar15 + -8);" (assignment_expression "piVar16 = (int *)(puVar15 + -8)" identifier = (cast_expression "(int *)(puVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -8;" (assignment_expression "puVar15 = puVar15 + -8" identifier = (binary_expression "puVar15 + -8" identifier + number_literal)) ;) (for_statement "for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" for ( (assignment_expression "puVar2 = *(undefined4 **)(pcVar8 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(pcVar8 + 0x30)" * (cast_expression "(undefined4 **)(pcVar8 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x30)" ( (binary_expression "pcVar8 + 0x30" identifier + number_literal) ))))) ; (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar2 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ) (compound_statement "{\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(code ***)(puVar15 + -0x14) = local_84;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_84" (pointer_expression "*(code ***)(puVar15 + -0x14)" * (cast_expression "(code ***)(puVar15 + -0x14)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(puVar15 + -0x18) = puVar2 + 1" (pointer_expression "*(undefined4 **)(puVar15 + -0x18)" * (cast_expression "(undefined4 **)(puVar15 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);" (assignment_expression "*(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18)" (pointer_expression "*(code **)(puVar15 + -0x1c)" * (cast_expression "(code **)(puVar15 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8f07b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8f07b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_84[0] = (code *)(iVar10 + 0x18);" (assignment_expression "local_84[0] = (code *)(iVar10 + 0x18)" (subscript_expression "local_84[0]" identifier [ number_literal ]) = (cast_expression "(code *)(iVar10 + 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar28 = CONCAT44(extraout_EDX_01,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX_01,local_c0)" identifier = (call_expression "CONCAT44(extraout_EDX_01,local_c0)" identifier (argument_list "(extraout_EDX_01,local_c0)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(puVar15 + -4);" (assignment_expression "piVar16 = (int *)(puVar15 + -4)" identifier = (cast_expression "(int *)(puVar15 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" else (compound_statement "{\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" { (if_statement "if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar14 < *(uint *)(param_4 + 0xb0))" ( (binary_expression "uVar14 < *(uint *)(param_4 + 0xb0)" identifier < (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) ))))) )) (compound_statement "{\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (code *)0x0;" (assignment_expression "local_5c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" statement_identifier : (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65ca7" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;" (assignment_expression "*(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258" (pointer_expression "*(undefined **)((int)piVar16 + -0x14)" * (cast_expression "(undefined **)((int)piVar16 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_0008f258" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);" (assignment_expression "uVar14 = uVar14 - *(uint *)(param_4 + 0xb0)" identifier = (binary_expression "uVar14 - *(uint *)(param_4 + 0xb0)" identifier - (pointer_expression "*(uint *)(param_4 + 0xb0)" * (cast_expression "(uint *)(param_4 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb0)" ( (binary_expression "param_4 + 0xb0" identifier + number_literal) )))))) ;) (expression_statement "uVar7 = *(uint *)(param_4 + 0xbc);" (assignment_expression "uVar7 = *(uint *)(param_4 + 0xbc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xbc)" * (cast_expression "(uint *)(param_4 + 0xbc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xbc)" ( (binary_expression "param_4 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = *(code ***)(param_4 + 0xc0);" (assignment_expression "local_a0 = *(code ***)(param_4 + 0xc0)" identifier = (pointer_expression "*(code ***)(param_4 + 0xc0)" * (cast_expression "(code ***)(param_4 + 0xc0)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_4 + 0xc0)" ( (binary_expression "param_4 + 0xc0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14)" ( (binary_expression "(uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14" (call_expression "(uint)((int)((int)local_a0 - uVar7) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_a0 - uVar7) >> 2)" ( (binary_expression "(int)((int)local_a0 - uVar7) >> 2" (cast_expression "(int)((int)local_a0 - uVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 - uVar7)" ( (binary_expression "(int)local_a0 - uVar7" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65c2b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x19cc7b" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(code **)(uVar7 + uVar14 * 4);" (assignment_expression "local_5c = *(code **)(uVar7 + uVar14 * 4)" identifier = (pointer_expression "*(code **)(uVar7 + uVar14 * 4)" * (cast_expression "(code **)(uVar7 + uVar14 * 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar7 + uVar14 * 4)" ( (binary_expression "uVar7 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar27 = CONCAT44(uVar7,local_5c);" (assignment_expression "uVar27 = CONCAT44(uVar7,local_5c)" identifier = (call_expression "CONCAT44(uVar7,local_5c)" identifier (argument_list "(uVar7,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (local_5c == (code *)0x0) goto LAB_0008f237;" if (parenthesized_expression "(local_5c == (code *)0x0)" ( (binary_expression "local_5c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008f237;" goto statement_identifier ;)) (if_statement "if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 0x10) != 0)" ( (binary_expression "((byte)local_5c[0x2a] & 0x10) != 0" (parenthesized_expression "((byte)local_5c[0x2a] & 0x10)" ( (binary_expression "(byte)local_5c[0x2a] & 0x10" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }" { (expression_statement "*(code **)((int)piVar16 + -0xc) = local_5c;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = local_5c" (pointer_expression "*(code **)((int)piVar16 + -0xc)" * (cast_expression "(code **)((int)piVar16 + -0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = param_2;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = param_2" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f222" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar27 = FUN_0034cd90();" (assignment_expression "uVar27 = FUN_0034cd90()" identifier = (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_5c = (code *)uVar27;" (assignment_expression "local_5c = (code *)uVar27" identifier = (cast_expression "(code *)uVar27" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" if (parenthesized_expression "(((byte)local_5c[0x2a] & 7) == 0)" ( (binary_expression "((byte)local_5c[0x2a] & 7) == 0" (parenthesized_expression "((byte)local_5c[0x2a] & 7)" ( (binary_expression "(byte)local_5c[0x2a] & 7" (cast_expression "(byte)local_5c[0x2a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2a]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(code **)(local_5c + 8);" (assignment_expression "local_b0 = *(code **)(local_5c + 8)" identifier = (pointer_expression "*(code **)(local_5c + 8)" * (cast_expression "(code **)(local_5c + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 8)" ( (binary_expression "local_5c + 8" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = ((byte)local_b0[0x2c] & 1) == 0;" (assignment_expression "bVar24 = ((byte)local_b0[0x2c] & 1) == 0" identifier = (binary_expression "((byte)local_b0[0x2c] & 1) == 0" (parenthesized_expression "((byte)local_b0[0x2c] & 1)" ( (binary_expression "(byte)local_b0[0x2c] & 1" (cast_expression "(byte)local_b0[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_b0[0x2c]" identifier [ number_literal ])) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }" { (expression_statement "cVar1 = local_5c[0x28];" (assignment_expression "cVar1 = local_5c[0x28]" identifier = (subscript_expression "local_5c[0x28]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = *(code **)(local_5c + 0xc);" (assignment_expression "local_a8 = *(code **)(local_5c + 0xc)" identifier = (pointer_expression "*(code **)(local_5c + 0xc)" * (cast_expression "(code **)(local_5c + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0xc)" ( (binary_expression "local_5c + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_b5 = (byte)local_5c[0x2b] >> 5 & 1;" (assignment_expression "local_b5 = (byte)local_5c[0x2b] >> 5 & 1" identifier = (binary_expression "(byte)local_5c[0x2b] >> 5 & 1" (binary_expression "(byte)local_5c[0x2b] >> 5" (cast_expression "(byte)local_5c[0x2b]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x2b]" identifier [ number_literal ])) >> number_literal) & number_literal)) ;) (expression_statement "bVar22 = ((byte)cVar1 & 0xf) < 2;" (assignment_expression "bVar22 = ((byte)cVar1 & 0xf) < 2" identifier = (binary_expression "((byte)cVar1 & 0xf) < 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) < number_literal)) ;) (expression_statement "bVar24 = ((byte)cVar1 & 0xf) == 2;" (assignment_expression "bVar24 = ((byte)cVar1 & 0xf) == 2" identifier = (binary_expression "((byte)cVar1 & 0xf) == 2" (parenthesized_expression "((byte)cVar1 & 0xf)" ( (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (expression_statement "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_b7 == '\0';" (assignment_expression "bVar24 = local_b7 == '\0'" identifier = (binary_expression "local_b7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" identifier = (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(cVar1,local_5c)" identifier (argument_list "(cVar1,local_5c)" ( identifier , identifier )))) & number_literal)) ;) (if_statement "if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }" { (if_statement "if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }" if (parenthesized_expression "(local_b5 != 0)" ( (binary_expression "local_b5 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }" { (expression_statement "iVar17 = *(int *)(*local_bc + 8);" (assignment_expression "iVar17 = *(int *)(*local_bc + 8)" identifier = (pointer_expression "*(int *)(*local_bc + 8)" * (cast_expression "(int *)(*local_bc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_bc + 8)" ( (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }" { (expression_statement "*(code **)((int)piVar16 + -4) = local_5c;" (assignment_expression "*(code **)((int)piVar16 + -4) = local_5c" (pointer_expression "*(code **)((int)piVar16 + -4)" * (cast_expression "(code **)((int)piVar16 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" * (cast_expression "(undefined ***)((int)piVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }" if (parenthesized_expression "((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0))" ( (binary_expression "(*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)" (parenthesized_expression "(*(char *)(iVar17 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar17 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar17 + 0x1a25)" * (cast_expression "(char *)(iVar17 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1a25)" ( (binary_expression "iVar17 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(((byte)local_5c[0x29] & 3) == 0)" ( (binary_expression "((byte)local_5c[0x29] & 3) == 0" (parenthesized_expression "((byte)local_5c[0x29] & 3)" ( (binary_expression "(byte)local_5c[0x29] & 3" (cast_expression "(byte)local_5c[0x29]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[0x29]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }" { (expression_statement "bVar22 = uVar19 < 0x2a;" (assignment_expression "bVar22 = uVar19 < 0x2a" identifier = (binary_expression "uVar19 < 0x2a" identifier < number_literal)) ;) (expression_statement "bVar24 = uVar19 == 0x2a;" (assignment_expression "bVar24 = uVar19 == 0x2a" identifier = (binary_expression "uVar19 == 0x2a" identifier == number_literal)) ;) (expression_statement "uVar27 = CONCAT44(iVar17,local_5c);" (assignment_expression "uVar27 = CONCAT44(iVar17,local_5c)" identifier = (call_expression "CONCAT44(iVar17,local_5c)" identifier (argument_list "(iVar17,local_5c)" ( identifier , identifier )))) ;) (if_statement "if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" if (parenthesized_expression "(uVar19 < 0x2b)" ( (binary_expression "uVar19 < 0x2b" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" { (expression_statement "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" * (cast_expression "(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" ( (binary_expression "local_a4[uVar19 - 0x65ec4] + (int)local_a4" (subscript_expression "local_a4[uVar19 - 0x65ec4]" identifier [ (binary_expression "uVar19 - 0x65ec4" identifier - number_literal) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0008ed18;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(code ***)(param_2 + 0x15c)" * (cast_expression "(code ***)(param_2 + 0x15c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 0x15c)" ( (binary_expression "param_2 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(code ****)((int)piVar16 + -0x14) = &local_88;" (assignment_expression "*(code ****)((int)piVar16 + -0x14) = &local_88" (pointer_expression "*(code ****)((int)piVar16 + -0x14)" * (cast_expression "(code ****)((int)piVar16 + -0x14)" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_88" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x18) = &local_64;" (assignment_expression "*(code ***)((int)piVar16 + -0x18) = &local_64" (pointer_expression "*(code ***)((int)piVar16 + -0x18)" * (cast_expression "(code ***)((int)piVar16 + -0x18)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x18)" ( (binary_expression "(int)piVar16 + -0x18" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "local_88 = local_a0 + 0xd;" (assignment_expression "local_88 = local_a0 + 0xd" identifier = (binary_expression "local_a0 + 0xd" identifier + number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0x1c) = local_88;" (assignment_expression "*(code ***)((int)piVar16 + -0x1c) = local_88" (pointer_expression "*(code ***)((int)piVar16 + -0x1c)" * (cast_expression "(code ***)((int)piVar16 + -0x1c)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0x1c)" ( (binary_expression "(int)piVar16 + -0x1c" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)piVar16 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)piVar16 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)piVar16 + -0x20)" * (cast_expression "(undefined1 **)((int)piVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x20)" ( (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x24)" ( (binary_expression "(int)piVar16 + -0x24" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" identifier = identifier) ;) (expression_statement "local_60 = local_a8;" (assignment_expression "local_60 = local_a8" identifier = identifier) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);" (assignment_expression "bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)piVar16 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x20)" ( (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = piVar16 == (int *)0x4;" (assignment_expression "bVar24 = piVar16 == (int *)0x4" identifier = (binary_expression "piVar16 == (int *)0x4" identifier == (cast_expression "(int *)0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "piVar16 = (int *)((int)piVar16 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar16 + -4)" identifier = (cast_expression "(int *)((int)piVar16 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -4)" ( (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar27 = CONCAT44(extraout_EDX_05,local_5c);" (assignment_expression "uVar27 = CONCAT44(extraout_EDX_05,local_5c)" identifier = (call_expression "CONCAT44(extraout_EDX_05,local_5c)" identifier (argument_list "(extraout_EDX_05,local_5c)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" else (compound_statement "{\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" { (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (code *)0x0;" (assignment_expression "local_a8 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar27 = CONCAT44(local_b4,local_5c);" (assignment_expression "uVar27 = CONCAT44(local_b4,local_5c)" identifier = (call_expression "CONCAT44(local_b4,local_5c)" identifier (argument_list "(local_b4,local_5c)" ( identifier , identifier )))) ;) }))) }) (else_clause "else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" else (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" { (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" identifier = (pointer_expression "*(code **)(local_5c + 0x30)" * (cast_expression "(code **)(local_5c + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_5c + 0x30)" ( (binary_expression "local_5c + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (code *)0x0;" (assignment_expression "local_a8 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar22 = CARRY4(local_ac,(uint)local_d8);" (assignment_expression "bVar22 = CARRY4(local_ac,(uint)local_d8)" identifier = (call_expression "CARRY4(local_ac,(uint)local_d8)" identifier (argument_list "(local_ac,(uint)local_d8)" ( identifier , (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" identifier = (binary_expression "local_d8 + local_ac" identifier + identifier)) ;) (expression_statement "bVar24 = local_b4 == (code *)0x0;" (assignment_expression "bVar24 = local_b4 == (code *)0x0" identifier = (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0008ed18:\n        local_5c = (code *)uVar27;" statement_identifier : (expression_statement "local_5c = (code *)uVar27;" (assignment_expression "local_5c = (code *)uVar27" identifier = (cast_expression "(code *)uVar27" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pbVar3 = *(byte **)local_5c;" (assignment_expression "pbVar3 = *(byte **)local_5c" identifier = (pointer_expression "*(byte **)local_5c" * (cast_expression "(byte **)local_5c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar18 = (byte *)((int)local_a4 + -0x19ca26)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca26)" ( (binary_expression "(int)local_a4 + -0x19ca26" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar3;" (assignment_expression "pbVar20 = pbVar3" identifier = identifier) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }" { (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar3 = pbVar3 + 8;" (assignment_expression "pbVar3 = pbVar3 + 8" identifier = (binary_expression "pbVar3 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" else (compound_statement "{\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar18 = (byte *)((int)local_a4 + -0x19ca1d)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + -0x19ca1d)" ( (binary_expression "(int)local_a4 + -0x19ca1d" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar3;" (assignment_expression "pbVar20 = pbVar3" identifier = identifier) ;) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "cVar11 = (!bVar23 && !bVar22) - bVar23;" (assignment_expression "cVar11 = (!bVar23 && !bVar22) - bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) - bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) - identifier)) ;) (expression_statement "pbVar3 = pbVar3 + 7;" (assignment_expression "pbVar3 = pbVar3 + 7" identifier = (binary_expression "pbVar3 + 7" identifier + number_literal)) ;) (if_statement "if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pbVar3 = local_c4;\n          }" { (expression_statement "pbVar3 = local_c4;" (assignment_expression "pbVar3 = local_c4" identifier = identifier) ;) })) }))) (expression_statement "local_c4 = pbVar3;" (assignment_expression "local_c4 = pbVar3" identifier = identifier) ;) (expression_statement "uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);" (assignment_expression "uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11)" identifier = (call_expression "CONCAT31((int3)(uVar27 >> 0x28),cVar11)" identifier (argument_list "((int3)(uVar27 >> 0x28),cVar11)" ( (call_expression "(int3)(uVar27 >> 0x28)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 0x28)" ( (binary_expression "uVar27 >> 0x28" identifier >> number_literal) ))) , identifier )))) ;) (if_statement "if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" if (parenthesized_expression "(local_b6 != '\0')" ( (binary_expression "local_b6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" { (if_statement "if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" if (parenthesized_expression "(local_b5 == 0)" ( (binary_expression "local_b5 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }" { (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" else (compound_statement "{\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" { (expression_statement "local_34 = local_b0;" (assignment_expression "local_34 = local_b0" identifier = identifier) ;) (expression_statement "local_30 = local_a8;" (assignment_expression "local_30 = local_a8" identifier = identifier) ;) }))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_c8 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_c8 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_c8 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_c8 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_c8 + 8)" * (cast_expression "(undefined4 **)(local_c8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }" { (expression_statement "*(code ***)((int)piVar16 + -8) = &local_5c;" (assignment_expression "*(code ***)((int)piVar16 + -8) = &local_5c" (pointer_expression "*(code ***)((int)piVar16 + -8)" * (cast_expression "(code ***)((int)piVar16 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f393" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" else (compound_statement "{\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" { (expression_statement "*puVar2 = local_5c;" (assignment_expression "*puVar2 = local_5c" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_c8 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_c8 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_c8 + 4)" * (cast_expression "(undefined4 **)(local_c8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)piVar16 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_dc" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_d8;" (assignment_expression "local_34 = local_d8" identifier = identifier) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" identifier = identifier) ;) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" identifier = (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8edda" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (code *)*param_7;" (assignment_expression "local_34 = (code *)*param_7" identifier = (cast_expression "(code *)*param_7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_cc + 4)" identifier = (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_cc + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_cc + 8)" identifier == (pointer_expression "*(undefined4 **)(local_cc + 8)" * (cast_expression "(undefined4 **)(local_cc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 8)" ( (binary_expression "local_cc + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }" { (expression_statement "*(code ***)((int)piVar16 + -8) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -8) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -8)" * (cast_expression "(code ***)((int)piVar16 + -8)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -8)" ( (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_cc;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_cc" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = local_34;" (assignment_expression "*puVar2 = local_34" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" * (cast_expression "(undefined4 **)(local_cc + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_cc + 4)" ( (binary_expression "local_cc + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code ***)((int)piVar16 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" * (cast_expression "(code ***)((int)piVar16 + -0xc)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar16 + -0xc)" ( (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_e0" (pointer_expression "*(int *)((int)piVar16 + -0x10)" * (cast_expression "(int *)((int)piVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "uVar26 = CONCAT44(uVar12,local_a8);" (assignment_expression "uVar26 = CONCAT44(uVar12,local_a8)" identifier = (call_expression "CONCAT44(uVar12,local_a8)" identifier (argument_list "(uVar12,local_a8)" ( identifier , identifier )))) ;) (expression_statement "lVar28 = CONCAT44(uVar12,local_c0);" (assignment_expression "lVar28 = CONCAT44(uVar12,local_c0)" identifier = (call_expression "CONCAT44(uVar12,local_c0)" identifier (argument_list "(uVar12,local_c0)" ( identifier , identifier )))) ;) (expression_statement "puVar15 = (undefined1 *)piVar16;" (assignment_expression "puVar15 = (undefined1 *)piVar16" identifier = (cast_expression "(undefined1 *)piVar16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_b5 != 0) goto LAB_0008ee30;" if (parenthesized_expression "(local_b5 != 0)" ( (binary_expression "local_b5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008ee30;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0008eae9:\n      local_c0 = (undefined4)lVar28;" statement_identifier : (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" identifier = (cast_expression "(undefined4)lVar28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;)) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_7 = param_7 + 3;" (assignment_expression "param_7 = param_7 + 3" identifier = (binary_expression "param_7 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_8 != local_d4)" ( (binary_expression "param_8 != local_d4" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_e8)" ( (binary_expression "local_4c[0] != local_e8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }" { (expression_statement "*(code **)((int)piVar16 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)piVar16 + -0x10)" * (cast_expression "(code **)((int)piVar16 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + -0x10)" ( (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + -0x14)" ( (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * 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 * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " ") , (string_literal " ") ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT ))) << LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_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 = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * IDENT))) ;) (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) )))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (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 IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * IDENT))) ;) (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) )))) ;) (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)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * IDENT))) ;) (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) )))) ;) (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)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) })) })) })) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , 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) )) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_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 (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_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 (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_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) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) (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 (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 *)) ) IDENT)) ;) (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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 * (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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (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) )))) = (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 *)) ) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (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 * (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 = 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (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) )))) = (binary_expression IDENT + 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 (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) )))) = (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) )))) = (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 ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (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) )))) = 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) )))) = 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 *))) ) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) >> 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) & LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + 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 *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (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) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (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) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (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) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (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 *))) ) (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_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) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_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 (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)\n\n{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0008e8c0(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" (identifier "FUN_0008e8c0") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,code *param_4,code *param_5,\n                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,\n                 uint param_11,int param_12)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "code *param_5" (type_identifier "code") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 *param_7" (type_identifier "undefined4") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "undefined4 param_10" (type_identifier "undefined4") (identifier "param_10")) (, ",") (parameter_declaration "uint param_11" (type_identifier "uint") (identifier "param_11")) (, ",") (parameter_declaration "int param_12" (primitive_type "int") (identifier "param_12")) () ")"))) (compound_statement "{\n  code cVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int iVar4;\n  code **ppcVar5;\n  size_t sVar6;\n  uint uVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined4 extraout_EDX;\n  undefined4 uVar12;\n  undefined4 extraout_EDX_00;\n  undefined **ppuVar13;\n  undefined4 extraout_EDX_01;\n  undefined **extraout_EDX_02;\n  int extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  code *extraout_EDX_07;\n  uint uVar14;\n  undefined1 *puVar15;\n  int *piVar16;\n  code *unaff_ESI;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  byte *pbVar20;\n  code *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined8 uVar26;\n  ulonglong uVar27;\n  longlong lVar28;\n  int iStack_f0;\n  undefined1 auStack_ec [4];\n  code *local_e8;\n  code **local_e4;\n  int local_e0;\n  code *local_dc;\n  code *local_d8;\n  int local_d4;\n  undefined1 *local_d0;\n  int local_cc;\n  int local_c8;\n  byte *local_c4;\n  undefined4 local_c0;\n  int *local_bc;\n  char local_b7;\n  char local_b6;\n  byte local_b5;\n  code *local_b4;\n  code *local_b0;\n  uint local_ac;\n  code *local_a8;\n  undefined **local_a4;\n  code **local_a0;\n  code *local_9c;\n  int local_98;\n  undefined1 local_94 [8];\n  code **local_8c;\n  code **local_88;\n  code *local_84 [3];\n  code *local_78;\n  code **local_74;\n  code **local_70;\n  code *local_6c;\n  uint local_68;\n  code *local_64;\n  code *local_60;\n  code *local_5c;\n  code *local_58;\n  code *local_54;\n  code *local_50;\n  code *local_4c [2];\n  undefined1 local_44 [16];\n  code *local_34;\n  code *local_30;\n  uint local_2c;\n  int local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_bc = &DAT_005ea7c8;\n  iVar17 = *(int *)(DAT_005ea7c8 + 8);\n  if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }\n  pcVar21 = local_4c[0];\n  iVar17 = *local_bc;\n  pcVar8 = *(code **)(iVar17 + 8);\n  if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }\n  if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }\n  local_c0 = (undefined4)lVar28;\n  if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }\n  local_b7 = '\0';\n  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }\n  local_c0 = (undefined4)lVar28;\n  if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }\n  if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }\n  return;\n}" ({ "{") (declaration "code cVar1;" (type_identifier "code") (identifier "cVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "code **ppcVar5;" (type_identifier "code") (pointer_declarator "**ppcVar5" (* "*") (pointer_declarator "*ppcVar5" (* "*") (identifier "ppcVar5"))) (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 extraout_EDX_00;" (type_identifier "undefined4") (identifier "extraout_EDX_00") (; ";")) (declaration "undefined **ppuVar13;" (type_identifier "undefined") (pointer_declarator "**ppuVar13" (* "*") (pointer_declarator "*ppuVar13" (* "*") (identifier "ppuVar13"))) (; ";")) (declaration "undefined4 extraout_EDX_01;" (type_identifier "undefined4") (identifier "extraout_EDX_01") (; ";")) (declaration "undefined **extraout_EDX_02;" (type_identifier "undefined") (pointer_declarator "**extraout_EDX_02" (* "*") (pointer_declarator "*extraout_EDX_02" (* "*") (identifier "extraout_EDX_02"))) (; ";")) (declaration "int extraout_EDX_03;" (primitive_type "int") (identifier "extraout_EDX_03") (; ";")) (declaration "undefined4 extraout_EDX_04;" (type_identifier "undefined4") (identifier "extraout_EDX_04") (; ";")) (declaration "undefined4 extraout_EDX_05;" (type_identifier "undefined4") (identifier "extraout_EDX_05") (; ";")) (declaration "undefined4 extraout_EDX_06;" (type_identifier "undefined4") (identifier "extraout_EDX_06") (; ";")) (declaration "code *extraout_EDX_07;" (type_identifier "code") (pointer_declarator "*extraout_EDX_07" (* "*") (identifier "extraout_EDX_07")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "code *unaff_ESI;" (type_identifier "code") (pointer_declarator "*unaff_ESI" (* "*") (identifier "unaff_ESI")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "undefined8 uVar26;" (type_identifier "undefined8") (identifier "uVar26") (; ";")) (declaration "ulonglong uVar27;" (type_identifier "ulonglong") (identifier "uVar27") (; ";")) (declaration "longlong lVar28;" (type_identifier "longlong") (identifier "lVar28") (; ";")) (declaration "int iStack_f0;" (primitive_type "int") (identifier "iStack_f0") (; ";")) (declaration "undefined1 auStack_ec [4];" (type_identifier "undefined1") (array_declarator "auStack_ec [4]" (identifier "auStack_ec") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "code *local_e8;" (type_identifier "code") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "code **local_e4;" (type_identifier "code") (pointer_declarator "**local_e4" (* "*") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4"))) (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "code *local_dc;" (type_identifier "code") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")) (; ";")) (declaration "code *local_d8;" (type_identifier "code") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "int local_d4;" (primitive_type "int") (identifier "local_d4") (; ";")) (declaration "undefined1 *local_d0;" (type_identifier "undefined1") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")) (; ";")) (declaration "int local_cc;" (primitive_type "int") (identifier "local_cc") (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "byte *local_c4;" (type_identifier "byte") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "int *local_bc;" (primitive_type "int") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")) (; ";")) (declaration "char local_b7;" (primitive_type "char") (identifier "local_b7") (; ";")) (declaration "char local_b6;" (primitive_type "char") (identifier "local_b6") (; ";")) (declaration "byte local_b5;" (type_identifier "byte") (identifier "local_b5") (; ";")) (declaration "code *local_b4;" (type_identifier "code") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")) (; ";")) (declaration "code *local_b0;" (type_identifier "code") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "uint local_ac;" (type_identifier "uint") (identifier "local_ac") (; ";")) (declaration "code *local_a8;" (type_identifier "code") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "undefined **local_a4;" (type_identifier "undefined") (pointer_declarator "**local_a4" (* "*") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4"))) (; ";")) (declaration "code **local_a0;" (type_identifier "code") (pointer_declarator "**local_a0" (* "*") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0"))) (; ";")) (declaration "code *local_9c;" (type_identifier "code") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "undefined1 local_94 [8];" (type_identifier "undefined1") (array_declarator "local_94 [8]" (identifier "local_94") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "code **local_8c;" (type_identifier "code") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))) (; ";")) (declaration "code **local_88;" (type_identifier "code") (pointer_declarator "**local_88" (* "*") (pointer_declarator "*local_88" (* "*") (identifier "local_88"))) (; ";")) (declaration "code *local_84 [3];" (type_identifier "code") (pointer_declarator "*local_84 [3]" (* "*") (array_declarator "local_84 [3]" (identifier "local_84") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "code *local_78;" (type_identifier "code") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "code **local_74;" (type_identifier "code") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))) (; ";")) (declaration "code **local_70;" (type_identifier "code") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "code *local_6c;" (type_identifier "code") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "code *local_64;" (type_identifier "code") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "code *local_60;" (type_identifier "code") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "code *local_5c;" (type_identifier "code") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "code *local_58;" (type_identifier "code") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "code *local_54;" (type_identifier "code") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "code *local_50;" (type_identifier "code") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "code *local_4c [2];" (type_identifier "code") (pointer_declarator "*local_4c [2]" (* "*") (array_declarator "local_4c [2]" (identifier "local_4c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_44 [16];" (type_identifier "undefined1") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "code *local_34;" (type_identifier "code") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "code *local_30;" (type_identifier "code") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4 = &__DT_PLTGOT;" (assignment_expression "local_a4 = &__DT_PLTGOT" (identifier "local_a4") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (param_6 == 9) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_6 == 9)" (( "(") (binary_expression "param_6 == 9" (identifier "param_6") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_bc = &DAT_005ea7c8;" (assignment_expression "local_bc = &DAT_005ea7c8" (identifier "local_bc") (= "=") (pointer_expression "&DAT_005ea7c8" (& "&") (identifier "DAT_005ea7c8"))) (; ";")) (expression_statement "iVar17 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar17 = *(int *)(DAT_005ea7c8 + 8)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iStack_f0 = iVar17;\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "iStack_f0 = iVar17;" (assignment_expression "iStack_f0 = iVar17" (identifier "iStack_f0") (= "=") (identifier "iVar17")) (; ";")) (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_002446e0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar17 + 0x5934) == 0) {\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }\n  else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar17 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x5934) == 0" (pointer_expression "*(int *)(iVar17 + 0x5934)" (* "*") (cast_expression "(int *)(iVar17 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x5934)" (( "(") (binary_expression "iVar17 + 0x5934" (identifier "iVar17") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_e8 = (code *)local_44;\n    iStack_f0 = 0;\n    local_4c[0] = local_e8;\n    FUN_00072b90(local_4c,"","");\n    piVar16 = (int *)auStack_ec;\n  }" ({ "{") (expression_statement "local_e8 = (code *)local_44;" (assignment_expression "local_e8 = (code *)local_44" (identifier "local_e8") (= "=") (cast_expression "(code *)local_44" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (; ";")) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" (identifier "iStack_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c[0] = local_e8;" (assignment_expression "local_4c[0] = local_e8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_e8")) (; ";")) (expression_statement "FUN_00072b90(local_4c,"","");" (call_expression "FUN_00072b90(local_4c,"","")" (identifier "FUN_00072b90") (argument_list "(local_4c,"","")" (( "(") (identifier "local_4c") (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (expression_statement "piVar16 = (int *)auStack_ec;" (assignment_expression "piVar16 = (int *)auStack_ec" (identifier "piVar16") (= "=") (cast_expression "(int *)auStack_ec" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_ec"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);\n    local_e8 = (code *)local_44;\n    piVar16 = &iStack_f0;\n  }" ({ "{") (expression_statement "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*(uint *)param_4 + 0x40))" (( "(") (pointer_expression "**(code **)(*(uint *)param_4 + 0x40)" (* "*") (pointer_expression "*(code **)(*(uint *)param_4 + 0x40)" (* "*") (cast_expression "(code **)(*(uint *)param_4 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(uint *)param_4 + 0x40)" (( "(") (binary_expression "*(uint *)param_4 + 0x40" (pointer_expression "*(uint *)param_4" (* "*") (cast_expression "(uint *)param_4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(local_4c,param_4,param_5)" (( "(") (identifier "local_4c") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "local_e8 = (code *)local_44;" (assignment_expression "local_e8 = (code *)local_44" (identifier "local_e8") (= "=") (cast_expression "(code *)local_44" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) (; ";")) (expression_statement "piVar16 = &iStack_f0;" (assignment_expression "piVar16 = &iStack_f0" (identifier "piVar16") (= "=") (pointer_expression "&iStack_f0" (& "&") (identifier "iStack_f0"))) (; ";")) (} "}")))) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" (identifier "pcVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" (identifier "iVar17") (= "=") (pointer_expression "*local_bc" (* "*") (identifier "local_bc"))) (; ";")) (expression_statement "pcVar8 = *(code **)(iVar17 + 8);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 8)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(iVar17 + 8)" (* "*") (cast_expression "(code **)(iVar17 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 8)" (( "(") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (pcVar8 == (code *)0x0) {\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(pcVar8 == (code *)0x0)" (( "(") (binary_expression "pcVar8 == (code *)0x0" (identifier "pcVar8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(int *)((int)piVar16 + -4) = iVar17;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(int *)((int)piVar16 + -4) = iVar17;" (assignment_expression "*(int *)((int)piVar16 + -4) = iVar17" (pointer_expression "*(int *)((int)piVar16 + -4)" (* "*") (cast_expression "(int *)((int)piVar16 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f7ad")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pcVar8 + 0x5934) == 0) {\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }\n  else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" (if "if") (parenthesized_expression "(*(uint *)(pcVar8 + 0x5934) == 0)" (( "(") (binary_expression "*(uint *)(pcVar8 + 0x5934) == 0" (pointer_expression "*(uint *)(pcVar8 + 0x5934)" (* "*") (cast_expression "(uint *)(pcVar8 + 0x5934)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x5934)" (( "(") (binary_expression "pcVar8 + 0x5934" (identifier "pcVar8") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0008e94f:\n    local_b6 = '\0';\n    local_e0 = 0;\n    local_cc = 0;\n    local_dc = (code *)0x0;\n    local_c8 = 0;\n    lVar28 = ZEXT48(pcVar8) << 0x20;\n  }" ({ "{") (labeled_statement "LAB_0008e94f:\n    local_b6 = '\0';" (statement_identifier "LAB_0008e94f") (: ":") (expression_statement "local_b6 = '\0';" (assignment_expression "local_b6 = '\0'" (identifier "local_b6") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" (identifier "local_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" (identifier "local_dc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar28 = ZEXT48(pcVar8) << 0x20;" (assignment_expression "lVar28 = ZEXT48(pcVar8) << 0x20" (identifier "lVar28") (= "=") (binary_expression "ZEXT48(pcVar8) << 0x20" (call_expression "ZEXT48(pcVar8)" (identifier "ZEXT48") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (<< "<<") (number_literal "0x20"))) (; ";")) (} "}")) (else_clause "else {\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" (else "else") (compound_statement "{\n    local_a8 = (code *)&local_2c;\n    local_34 = local_a8;\n    pcVar8 = (code *)0xffffffff;\n    if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }\n    *(undefined4 *)((int)piVar16 + -4) = 0;\n    *(code **)((int)piVar16 + -8) = pcVar8;\n    local_a0 = &local_34;\n    *(code **)((int)piVar16 + -0xc) = pcVar21;\n    *(code ***)((int)piVar16 + -0x10) = local_a0;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;\n    FUN_00072b90();\n    iVar17 = 5;\n    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);\n    bVar24 = piVar16 == (int *)0x0;\n    ppuVar13 = local_a4 + -0x67293;\n    pcVar8 = local_34;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }\n    *(code ***)((int)piVar16 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(code ***)(param_2 + 0x15c);\n    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;\n    lVar28 = FUN_00074520();\n    local_e0 = (int)lVar28;\n    local_c8 = local_e0 + 0xc;\n    local_cc = local_e0 + 0x24;\n    unaff_ESI = (code *)(local_e0 + 0x18);\n    local_e0 = local_e0 + 0x30;\n    iVar17 = *local_bc;\n    local_b6 = '\x01';\n    local_dc = unaff_ESI;\n  }" ({ "{") (expression_statement "local_a8 = (code *)&local_2c;" (assignment_expression "local_a8 = (code *)&local_2c" (identifier "local_a8") (= "=") (cast_expression "(code *)&local_2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")))) (; ";")) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" (identifier "local_34") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "pcVar8 = (code *)0xffffffff;" (assignment_expression "pcVar8 = (code *)0xffffffff" (identifier "pcVar8") (= "=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (local_4c[0] != (code *)0x0) {\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }" (if "if") (parenthesized_expression "(local_4c[0] != (code *)0x0)" (( "(") (binary_expression "local_4c[0] != (code *)0x0" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(code **)((int)piVar16 + -0x10) = local_4c[0];\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;\n      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));\n      pcVar8 = pcVar21 + sVar6;\n    }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f537" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f537")) (; ";")) (expression_statement "sVar6 = strlen(*(char **)((int)piVar16 + -0x10));" (assignment_expression "sVar6 = strlen(*(char **)((int)piVar16 + -0x10))" (identifier "sVar6") (= "=") (call_expression "strlen(*(char **)((int)piVar16 + -0x10))" (identifier "strlen") (argument_list "(*(char **)((int)piVar16 + -0x10))" (( "(") (pointer_expression "*(char **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(char **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar8 = pcVar21 + sVar6;" (assignment_expression "pcVar8 = pcVar21 + sVar6" (identifier "pcVar8") (= "=") (binary_expression "pcVar21 + sVar6" (identifier "pcVar21") (+ "+") (identifier "sVar6"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)piVar16 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -4)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code **)((int)piVar16 + -8) = pcVar8;" (assignment_expression "*(code **)((int)piVar16 + -8) = pcVar8" (pointer_expression "*(code **)((int)piVar16 + -8)" (* "*") (cast_expression "(code **)((int)piVar16 + -8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(code **)((int)piVar16 + -0xc) = pcVar21;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = pcVar21" (pointer_expression "*(code **)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code **)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pcVar21")) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0x10) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0x10) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f54f")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" (identifier "iVar17") (= "=") (number_literal "5")) (; ";")) (expression_statement "bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10)" (identifier "bVar22") (= "=") (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (cast_expression "(undefined1 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")"))))) (; ";")) (expression_statement "bVar24 = piVar16 == (int *)0x0;" (assignment_expression "bVar24 = piVar16 == (int *)0x0" (identifier "bVar24") (= "=") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "ppuVar13 = local_a4 + -0x67293;" (assignment_expression "ppuVar13 = local_a4 + -0x67293" (identifier "ppuVar13") (= "=") (binary_expression "local_a4 + -0x67293" (identifier "local_a4") (+ "+") (number_literal "-0x67293"))) (; ";")) (expression_statement "pcVar8 = local_34;" (assignment_expression "pcVar8 = local_34" (identifier "pcVar8") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    } while (bVar24);" (do "do") (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n      bVar24 = *(code *)ppuVar13 == *pcVar8;\n      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" (identifier "bVar22") (= "=") (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (< "<") (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")))) (; ";")) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar8" (identifier "bVar24") (= "=") (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (== "==") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")))) (; ";")) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (if_statement "if (!bVar22) {\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n      iVar17 = 0xf;\n      pcVar8 = (code *)((int)local_a4 + -0x19ca46);\n      pcVar21 = local_34;\n      do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }\n    }" ({ "{") (expression_statement "iVar17 = 0xf;" (assignment_expression "iVar17 = 0xf" (identifier "iVar17") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19ca46);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19ca46)" (identifier "pcVar8") (= "=") (cast_expression "(code *)((int)local_a4 + -0x19ca46)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + -0x19ca46)" (( "(") (binary_expression "(int)local_a4 + -0x19ca46" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19ca46")) () ")")))) (; ";")) (expression_statement "pcVar21 = local_34;" (assignment_expression "pcVar21 = local_34" (identifier "pcVar21") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      } while (bVar22);" (do "do") (compound_statement "{\n        unaff_ESI = pcVar8;\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;\n        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n        bVar22 = *pcVar8 == *pcVar21;\n        pcVar8 = unaff_ESI;\n        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n      }" ({ "{") (expression_statement "unaff_ESI = pcVar8;" (assignment_expression "unaff_ESI = pcVar8" (identifier "unaff_ESI") (= "=") (identifier "pcVar8")) (; ";")) (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "unaff_ESI") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar23 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar23 = (byte)*pcVar8 < (byte)*pcVar21" (identifier "bVar23") (= "=") (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")) (< "<") (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" (identifier "bVar22") (= "=") (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "pcVar8 = unaff_ESI;" (assignment_expression "pcVar8 = unaff_ESI" (identifier "pcVar8") (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" (if "if") (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (compound_statement "{\n        if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }\n        goto LAB_0008e94f;\n      }" ({ "{") (if_statement "if (local_34 == local_a8) {\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }\n        else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" (if "if") (parenthesized_expression "(local_34 == local_a8)" (( "(") (binary_expression "local_34 == local_a8" (identifier "local_34") (== "==") (identifier "local_a8")) () ")")) (compound_statement "{\n          iVar17 = *local_bc;\n          pcVar8 = local_34;\n        }" ({ "{") (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" (identifier "iVar17") (= "=") (pointer_expression "*local_bc" (* "*") (identifier "local_bc"))) (; ";")) (expression_statement "pcVar8 = local_34;" (assignment_expression "pcVar8 = local_34" (identifier "pcVar8") (= "=") (identifier "local_34")) (; ";")) (} "}")) (else_clause "else {\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" (else "else") (compound_statement "{\n          *(code **)((int)piVar16 + -0x10) = local_34;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;\n          FUN_003ae080();\n          iVar17 = *local_bc;\n          pcVar8 = extraout_EDX_07;\n        }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -0x10) = local_34;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_34" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f6cb")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" (identifier "iVar17") (= "=") (pointer_expression "*local_bc" (* "*") (identifier "local_bc"))) (; ";")) (expression_statement "pcVar8 = extraout_EDX_07;" (assignment_expression "pcVar8 = extraout_EDX_07" (identifier "pcVar8") (= "=") (identifier "extraout_EDX_07")) (; ";")) (} "}")))) (goto_statement "goto LAB_0008e94f;" (goto "goto") (statement_identifier "LAB_0008e94f") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_34 != local_a8) {\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }" (if "if") (parenthesized_expression "(local_34 != local_a8)" (( "(") (binary_expression "local_34 != local_a8" (identifier "local_34") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n      *(code **)((int)piVar16 + -0x10) = local_34;\n      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;\n      FUN_003ae080();\n    }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -0x10) = local_34;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_34" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f801" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f801")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" (identifier "local_30") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_2 + 0x15c)" (* "*") (cast_expression "(code ***)(param_2 + 0x15c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x15c)" (( "(") (binary_expression "param_2 + 0x15c" (identifier "param_2") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15" (pointer_expression "*(code ***)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_a0 + 0x15" (identifier "local_a0") (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f5c8")) (; ";")) (expression_statement "lVar28 = FUN_00074520();" (assignment_expression "lVar28 = FUN_00074520()" (identifier "lVar28") (= "=") (call_expression "FUN_00074520()" (identifier "FUN_00074520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_e0 = (int)lVar28;" (assignment_expression "local_e0 = (int)lVar28" (identifier "local_e0") (= "=") (cast_expression "(int)lVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar28"))) (; ";")) (expression_statement "local_c8 = local_e0 + 0xc;" (assignment_expression "local_c8 = local_e0 + 0xc" (identifier "local_c8") (= "=") (binary_expression "local_e0 + 0xc" (identifier "local_e0") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "local_cc = local_e0 + 0x24;" (assignment_expression "local_cc = local_e0 + 0x24" (identifier "local_cc") (= "=") (binary_expression "local_e0 + 0x24" (identifier "local_e0") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "unaff_ESI = (code *)(local_e0 + 0x18);" (assignment_expression "unaff_ESI = (code *)(local_e0 + 0x18)" (identifier "unaff_ESI") (= "=") (cast_expression "(code *)(local_e0 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + 0x18)" (( "(") (binary_expression "local_e0 + 0x18" (identifier "local_e0") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_e0 = local_e0 + 0x30;" (assignment_expression "local_e0 = local_e0 + 0x30" (identifier "local_e0") (= "=") (binary_expression "local_e0 + 0x30" (identifier "local_e0") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "iVar17 = *local_bc;" (assignment_expression "iVar17 = *local_bc" (identifier "iVar17") (= "=") (pointer_expression "*local_bc" (* "*") (identifier "local_bc"))) (; ";")) (expression_statement "local_b6 = '\x01';" (assignment_expression "local_b6 = '\x01'" (identifier "local_b6") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "local_dc = unaff_ESI;" (assignment_expression "local_dc = unaff_ESI" (identifier "local_dc") (= "=") (identifier "unaff_ESI")) (; ";")) (} "}")))) (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" (identifier "local_c0") (= "=") (cast_expression "(undefined4)lVar28" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar28"))) (; ";")) (if_statement "if (*(int *)(iVar17 + 8) == 0) {\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar17 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 8) == 0" (pointer_expression "*(int *)(iVar17 + 8)" (* "*") (cast_expression "(int *)(iVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 8)" (( "(") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(code **)((int)piVar16 + -4) = unaff_ESI;\n    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -4) = unaff_ESI;" (assignment_expression "*(code **)((int)piVar16 + -4) = unaff_ESI" (pointer_expression "*(code **)((int)piVar16 + -4)" (* "*") (cast_expression "(code **)((int)piVar16 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f7c9")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_b7 = '\0';" (assignment_expression "local_b7 = '\0'" (identifier "local_b7") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2)" (( "(") (binary_expression "*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar17 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar17 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar17 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar17 + 8) + 0x5934" (pointer_expression "*(int *)(iVar17 + 8)" (* "*") (cast_expression "(int *)(iVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 8)" (( "(") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    *(undefined4 *)((int)piVar16 + -0x10) = param_1;\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;\n    local_b7 = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_b7 == '\0';\n    lVar28 = CONCAT44(extraout_EDX_06,local_c0);\n    if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = param_1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f45b")) (; ";")) (expression_statement "local_b7 = FUN_000752e0();" (assignment_expression "local_b7 = FUN_000752e0()" (identifier "local_b7") (= "=") (call_expression "FUN_000752e0()" (identifier "FUN_000752e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = local_b7 == '\0';" (assignment_expression "bVar24 = local_b7 == '\0'" (identifier "bVar24") (= "=") (binary_expression "local_b7 == '\0'" (identifier "local_b7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "lVar28 = CONCAT44(extraout_EDX_06,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX_06,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(extraout_EDX_06,local_c0)" (identifier "CONCAT44") (argument_list "(extraout_EDX_06,local_c0)" (( "(") (identifier "extraout_EDX_06") (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (!bVar24) {\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n      iVar17 = 0xc;\n      local_b7 = '\0';\n      ppuVar13 = local_a4 + -0x66894;\n      pcVar8 = local_4c[0];\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar24) == bVar22;\n      lVar28 = CONCAT44(local_4c[0],local_c0);\n      if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" (identifier "iVar17") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_b7 = '\0';" (assignment_expression "local_b7 = '\0'" (identifier "local_b7") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "ppuVar13 = local_a4 + -0x66894;" (assignment_expression "ppuVar13 = local_a4 + -0x66894" (identifier "ppuVar13") (= "=") (binary_expression "local_a4 + -0x66894" (identifier "local_a4") (+ "+") (number_literal "-0x66894"))) (; ";")) (expression_statement "pcVar8 = local_4c[0];" (assignment_expression "pcVar8 = local_4c[0]" (identifier "pcVar8") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);" (do "do") (compound_statement "{\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n        bVar24 = *(code *)ppuVar13 == *pcVar8;\n        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" (identifier "bVar22") (= "=") (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (< "<") (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")))) (; ";")) (expression_statement "bVar24 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar24 = *(code *)ppuVar13 == *pcVar8" (identifier "bVar24") (= "=") (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (== "==") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")))) (; ";")) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(local_4c[0],local_c0)" (identifier "CONCAT44") (argument_list "(local_4c[0],local_c0)" (( "(") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (!bVar22) {\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n        iVar17 = 0x11;\n        pcVar8 = (code *)((int)local_a4 + -0x19a243);\n        pcVar21 = local_4c[0];\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        lVar28 = CONCAT44(local_4c[0],local_c0);\n        if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" (identifier "iVar17") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a243);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a243)" (identifier "pcVar8") (= "=") (cast_expression "(code *)((int)local_a4 + -0x19a243)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + -0x19a243)" (( "(") (binary_expression "(int)local_a4 + -0x19a243" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19a243")) () ")")))) (; ";")) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" (identifier "pcVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" (do "do") (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;\n          bVar22 = *pcVar8 == *pcVar21;\n          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar23 = (byte)*pcVar8 < (byte)*pcVar21" (identifier "bVar23") (= "=") (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")) (< "<") (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" (identifier "bVar22") (= "=") (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" (identifier "bVar22") (= "=") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(local_4c[0],local_c0)" (identifier "CONCAT44") (argument_list "(local_4c[0],local_c0)" (( "(") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (!bVar22) {\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n          iVar17 = 0xc;\n          pcVar8 = (code *)((int)local_a4 + -0x19a231);\n          pcVar21 = local_4c[0];\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          lVar28 = CONCAT44(local_4c[0],local_c0);\n          if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }\n        }" ({ "{") (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" (identifier "iVar17") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a231);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a231)" (identifier "pcVar8") (= "=") (cast_expression "(code *)((int)local_a4 + -0x19a231)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + -0x19a231)" (( "(") (binary_expression "(int)local_a4 + -0x19a231" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19a231")) () ")")))) (; ";")) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" (identifier "pcVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n            bVar22 = *pcVar8 == *pcVar21;\n            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar24 = (byte)*pcVar8 < (byte)*pcVar21" (identifier "bVar24") (= "=") (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")) (< "<") (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" (identifier "bVar22") (= "=") (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar24 && !bVar22) == bVar24;" (assignment_expression "bVar22 = (!bVar24 && !bVar22) == bVar24" (identifier "bVar22") (= "=") (binary_expression "(!bVar24 && !bVar22) == bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" (( "(") (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(local_4c[0],local_c0)" (identifier "CONCAT44") (argument_list "(local_4c[0],local_c0)" (( "(") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (!bVar22) {\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n            iVar17 = 0x11;\n            ppuVar13 = local_a4 + -0x66889;\n            pcVar8 = local_4c[0];\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            lVar28 = CONCAT44(local_4c[0],local_c0);\n            if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }\n          }" ({ "{") (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" (identifier "iVar17") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "ppuVar13 = local_a4 + -0x66889;" (assignment_expression "ppuVar13 = local_a4 + -0x66889" (identifier "ppuVar13") (= "=") (binary_expression "local_a4 + -0x66889" (identifier "local_a4") (+ "+") (number_literal "-0x66889"))) (; ";")) (expression_statement "pcVar8 = local_4c[0];" (assignment_expression "pcVar8 = local_4c[0]" (identifier "pcVar8") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" (do "do") (compound_statement "{\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;\n              bVar22 = *(code *)ppuVar13 == *pcVar8;\n              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);\n              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;" (assignment_expression "bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8" (identifier "bVar23") (= "=") (binary_expression "(byte)*(code *)ppuVar13 < (byte)*pcVar8" (binary_expression "(byte)*(code *)ppuVar13" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (< "<") (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")))) (; ";")) (expression_statement "bVar22 = *(code *)ppuVar13 == *pcVar8;" (assignment_expression "bVar22 = *(code *)ppuVar13 == *pcVar8" (identifier "bVar22") (= "=") (binary_expression "*(code *)ppuVar13 == *pcVar8" (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (== "==") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")))) (; ";")) (expression_statement "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar13 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar13 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" (identifier "bVar22") (= "=") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(local_4c[0],local_c0)" (identifier "CONCAT44") (argument_list "(local_4c[0],local_c0)" (( "(") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (!bVar22) {\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n              iVar17 = 9;\n              pcVar8 = (code *)((int)local_a4 + -0x19a212);\n              pcVar21 = local_4c[0];\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_b7 = (!bVar24 && !bVar22) != bVar24;\n              lVar28 = CONCAT44(local_4c[0],local_c0);\n            }" ({ "{") (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" (identifier "iVar17") (= "=") (number_literal "9")) (; ";")) (expression_statement "pcVar8 = (code *)((int)local_a4 + -0x19a212);" (assignment_expression "pcVar8 = (code *)((int)local_a4 + -0x19a212)" (identifier "pcVar8") (= "=") (cast_expression "(code *)((int)local_a4 + -0x19a212)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + -0x19a212)" (( "(") (binary_expression "(int)local_a4 + -0x19a212" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19a212")) () ")")))) (; ";")) (expression_statement "pcVar21 = local_4c[0];" (assignment_expression "pcVar21 = local_4c[0]" (identifier "pcVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);" (do "do") (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;\n                bVar22 = *pcVar8 == *pcVar21;\n                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;\n                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = (byte)*pcVar8 < (byte)*pcVar21;" (assignment_expression "bVar24 = (byte)*pcVar8 < (byte)*pcVar21" (identifier "bVar24") (= "=") (binary_expression "(byte)*pcVar8 < (byte)*pcVar21" (binary_expression "(byte)*pcVar8" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar8")) (< "<") (binary_expression "(byte)*pcVar21" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "bVar22 = *pcVar8 == *pcVar21;" (assignment_expression "bVar22 = *pcVar8 == *pcVar21" (identifier "bVar22") (= "=") (binary_expression "*pcVar8 == *pcVar21" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar25 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar21 + (uint)bVar25 * -2" (identifier "pcVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "local_b7 = (!bVar24 && !bVar22) != bVar24;" (assignment_expression "local_b7 = (!bVar24 && !bVar22) != bVar24" (identifier "local_b7") (= "=") (binary_expression "(!bVar24 && !bVar22) != bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" (( "(") (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (!= "!=") (identifier "bVar24"))) (; ";")) (expression_statement "lVar28 = CONCAT44(local_4c[0],local_c0);" (assignment_expression "lVar28 = CONCAT44(local_4c[0],local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(local_4c[0],local_c0)" (identifier "CONCAT44") (argument_list "(local_4c[0],local_c0)" (( "(") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_c0") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" (identifier "local_c0") (= "=") (cast_expression "(undefined4)lVar28" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar28"))) (; ";")) (if_statement "if (param_8 != 0) {\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_c4 = (byte *)0x0;\n    local_d0 = local_94;\n    local_e4 = &local_78;\n    local_d4 = 0;\n    do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);\n  }" ({ "{") (expression_statement "local_c4 = (byte *)0x0;" (assignment_expression "local_c4 = (byte *)0x0" (identifier "local_c4") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d0 = local_94;" (assignment_expression "local_d0 = local_94" (identifier "local_d0") (= "=") (identifier "local_94")) (; ";")) (expression_statement "local_e4 = &local_78;" (assignment_expression "local_e4 = &local_78" (identifier "local_e4") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    } while (param_8 != local_d4);" (do "do") (compound_statement "{\n      local_c0 = (undefined4)lVar28;\n      uVar19 = param_7[1] & 0xff;\n      uVar14 = (uint)param_7[1] >> 8;\n      local_ac = param_7[2];\n      if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }\nLAB_0008eae9:\n      local_c0 = (undefined4)lVar28;\n      local_d4 = local_d4 + 1;\n      param_7 = param_7 + 3;\n    }" ({ "{") (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" (identifier "local_c0") (= "=") (cast_expression "(undefined4)lVar28" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar28"))) (; ";")) (expression_statement "uVar19 = param_7[1] & 0xff;" (assignment_expression "uVar19 = param_7[1] & 0xff" (identifier "uVar19") (= "=") (binary_expression "param_7[1] & 0xff" (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar14 = (uint)param_7[1] >> 8;" (assignment_expression "uVar14 = (uint)param_7[1] >> 8" (identifier "uVar14") (= "=") (binary_expression "(uint)param_7[1] >> 8" (cast_expression "(uint)param_7[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]"))) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "local_ac = param_7[2];" (assignment_expression "local_ac = param_7[2]" (identifier "local_ac") (= "=") (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar14 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" (if "if") (parenthesized_expression "(uVar14 < param_11)" (( "(") (binary_expression "uVar14 < param_11" (identifier "uVar14") (< "<") (identifier "param_11")) () ")")) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }\n        iVar17 = uVar14 * 0x10 + param_12;\n        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);\n        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);\n        if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }\n        local_a8 = (code *)uVar26;\n        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }\n        local_a8 = (code *)uVar26;\n        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n        if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (param_12 == 0) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(param_12 == 0)" (( "(") (binary_expression "param_12 == 0" (identifier "param_12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65ca7" (identifier "local_a4") (+ "+") (number_literal "-0x65ca7"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xea")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19ca36"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f6fc")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar17 = uVar14 * 0x10 + param_12;" (assignment_expression "iVar17 = uVar14 * 0x10 + param_12" (identifier "iVar17") (= "=") (binary_expression "uVar14 * 0x10 + param_12" (binary_expression "uVar14 * 0x10" (identifier "uVar14") (* "*") (number_literal "0x10")) (+ "+") (identifier "param_12"))) (; ";")) (expression_statement "local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);" (assignment_expression "local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe)" (identifier "local_a8") (= "=") (binary_expression "(code *)(uint)*(ushort *)(iVar17 + 0xe)" (cast_expression "(code *)(uint)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(iVar17 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xe)" (( "(") (binary_expression "iVar17 + 0xe" (identifier "iVar17") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);" (assignment_expression "uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8)" (identifier "uVar26") (= "=") (call_expression "CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)lVar28 >> 0x20),local_a8)" (( "(") (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar28")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "local_a8") () ")")))) (; ";")) (if_statement "if (local_a8 < (code *)0xff00) {\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }\n        else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" (if "if") (parenthesized_expression "(local_a8 < (code *)0xff00)" (( "(") (binary_expression "local_a8 < (code *)0xff00" (identifier "local_a8") (< "<") (cast_expression "(code *)0xff00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff00"))) () ")")) (compound_statement "{\nLAB_0008eb4e:\n          local_a8 = (code *)uVar26;\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }\n        }" ({ "{") (labeled_statement "LAB_0008eb4e:\n          local_a8 = (code *)uVar26;" (statement_identifier "LAB_0008eb4e") (: ":") (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" (identifier "local_a8") (= "=") (cast_expression "(code *)uVar26" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";"))) (expression_statement "pcVar8 = *(code **)(iVar17 + 4);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 4)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(iVar17 + 4)" (* "*") (cast_expression "(code **)(iVar17 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 4)" (( "(") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_b4 = pcVar8 + local_ac;" (assignment_expression "local_b4 = pcVar8 + local_ac" (identifier "local_b4") (= "=") (binary_expression "pcVar8 + local_ac" (identifier "pcVar8") (+ "+") (identifier "local_ac"))) (; ";")) (if_statement "if (local_b6 != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }" (if "if") (parenthesized_expression "(local_b6 != '\0')" (( "(") (binary_expression "local_b6 != '\0'" (identifier "local_b6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;\n            FUN_00073b00();\n            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);\n            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;\nLAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            local_34 = (code *)0xffffffff;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;\n            FUN_00073ca0();\n            goto LAB_0008ea63;\n          }" ({ "{") (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = local_a8;" (assignment_expression "local_30 = local_a8" (identifier "local_30") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8eb93")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_b0 = (code *)CONCAT31(local_b0._1_3_,1);" (assignment_expression "local_b0 = (code *)CONCAT31(local_b0._1_3_,1)" (identifier "local_b0") (= "=") (cast_expression "(code *)CONCAT31(local_b0._1_3_,1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_b0._1_3_,1)" (identifier "CONCAT31") (argument_list "(local_b0._1_3_,1)" (( "(") (field_expression "local_b0._1_3_" (identifier "local_b0") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;" (if "if") (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) != 3)" (( "(") (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" (* "*") (cast_expression "(byte *)(iVar17 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xc)" (( "(") (binary_expression "iVar17 + 0xc" (identifier "iVar17") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_0008ea48;" (goto "goto") (statement_identifier "LAB_0008ea48") (; ";"))) (labeled_statement "LAB_0008ebac:\n            *(code ***)((int)piVar16 + -0xc) = local_a0;" (statement_identifier "LAB_0008ebac") (: ":") (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";"))) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "local_34 = (code *)0xffffffff;" (assignment_expression "local_34 = (code *)0xffffffff" (identifier "local_34") (= "=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ebc7")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0008ea63;" (goto "goto") (statement_identifier "LAB_0008ea63") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" (else "else") (compound_statement "{\n          if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }\n          pcVar8 = *(code **)(iVar17 + 4);\n          local_b4 = pcVar8 + local_ac;\n          if (local_b6 == '\0') goto LAB_0008eae9;\n          local_a0 = &local_34;\n          local_34 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          local_30 = (code *)0x0;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;\n          FUN_00073b00();\n          local_b0 = (code *)((uint)local_b0 & 0xffffff00);\n          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;\nLAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(int *)((int)piVar16 + -0x10) = local_c8;\n          local_34 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;\n          FUN_00073ca0();\nLAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          local_30 = (code *)0x0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;\n          local_34 = pcVar8;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;\n          FUN_00074020();\n          uVar26 = CONCAT44(extraout_EDX,local_a8);\n          lVar28 = CONCAT44(extraout_EDX,local_c0);\n          if ((char)local_b0 == '\0') goto LAB_0008eae9;\n        }" ({ "{") (if_statement "if (local_a8 == (code *)0xffff) {\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }" (if "if") (parenthesized_expression "(local_a8 == (code *)0xffff)" (( "(") (binary_expression "local_a8 == (code *)0xffff" (identifier "local_a8") (== "==") (cast_expression "(code *)0xffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffff"))) () ")")) (compound_statement "{\n            uVar7 = *(uint *)(param_4 + 0x30);\n            if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }\n            *(uint *)((int)piVar16 + -8) = uVar14;\n            *(code **)((int)piVar16 + -0xc) = param_4;\n            *(uint *)((int)piVar16 + -0x10) = uVar7;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;\n            uVar26 = FUN_0028b7d0();\n            goto LAB_0008eb4e;\n          }" ({ "{") (expression_statement "uVar7 = *(uint *)(param_4 + 0x30);" (assignment_expression "uVar7 = *(uint *)(param_4 + 0x30)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_4 + 0x30)" (* "*") (cast_expression "(uint *)(param_4 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (uVar7 == 0) {\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = *(uint *)param_4;\n              *(code **)((int)piVar16 + -0x10) = param_4;\n              pcVar8 = *(code **)(uVar7 + 0x6c);\n              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;\n              uVar7 = (*pcVar8)();\n              *(uint *)(param_4 + 0x30) = uVar7;\n            }" ({ "{") (expression_statement "uVar7 = *(uint *)param_4;" (assignment_expression "uVar7 = *(uint *)param_4" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)param_4" (* "*") (cast_expression "(uint *)param_4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4")))) (; ";")) (expression_statement "*(code **)((int)piVar16 + -0x10) = param_4;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = param_4" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar8 = *(code **)(uVar7 + 0x6c);" (assignment_expression "pcVar8 = *(code **)(uVar7 + 0x6c)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(uVar7 + 0x6c)" (* "*") (cast_expression "(code **)(uVar7 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar7 + 0x6c)" (( "(") (binary_expression "uVar7 + 0x6c" (identifier "uVar7") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f2ce")) (; ";")) (expression_statement "uVar7 = (*pcVar8)();" (assignment_expression "uVar7 = (*pcVar8)()" (identifier "uVar7") (= "=") (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(param_4 + 0x30) = uVar7;" (assignment_expression "*(uint *)(param_4 + 0x30) = uVar7" (pointer_expression "*(uint *)(param_4 + 0x30)" (* "*") (cast_expression "(uint *)(param_4 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "*(uint *)((int)piVar16 + -8) = uVar14;" (assignment_expression "*(uint *)((int)piVar16 + -8) = uVar14" (pointer_expression "*(uint *)((int)piVar16 + -8)" (* "*") (cast_expression "(uint *)((int)piVar16 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(code **)((int)piVar16 + -0xc) = param_4;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = param_4" (pointer_expression "*(code **)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code **)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(uint *)((int)piVar16 + -0x10) = uVar7;" (assignment_expression "*(uint *)((int)piVar16 + -0x10) = uVar7" (pointer_expression "*(uint *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(uint *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ec49")) (; ";")) (expression_statement "uVar26 = FUN_0028b7d0();" (assignment_expression "uVar26 = FUN_0028b7d0()" (identifier "uVar26") (= "=") (call_expression "FUN_0028b7d0()" (identifier "FUN_0028b7d0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0008eb4e;" (goto "goto") (statement_identifier "LAB_0008eb4e") (; ";")) (} "}"))) (expression_statement "pcVar8 = *(code **)(iVar17 + 4);" (assignment_expression "pcVar8 = *(code **)(iVar17 + 4)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(iVar17 + 4)" (* "*") (cast_expression "(code **)(iVar17 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 4)" (( "(") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_b4 = pcVar8 + local_ac;" (assignment_expression "local_b4 = pcVar8 + local_ac" (identifier "local_b4") (= "=") (binary_expression "pcVar8 + local_ac" (identifier "pcVar8") (+ "+") (identifier "local_ac"))) (; ";")) (if_statement "if (local_b6 == '\0') goto LAB_0008eae9;" (if "if") (parenthesized_expression "(local_b6 == '\0')" (( "(") (binary_expression "local_b6 == '\0'" (identifier "local_b6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0008eae9;" (goto "goto") (statement_identifier "LAB_0008eae9") (; ";"))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" (identifier "local_34") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ea2f")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_b0 = (code *)((uint)local_b0 & 0xffffff00);" (assignment_expression "local_b0 = (code *)((uint)local_b0 & 0xffffff00)" (identifier "local_b0") (= "=") (cast_expression "(code *)((uint)local_b0 & 0xffffff00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)local_b0 & 0xffffff00)" (( "(") (binary_expression "(uint)local_b0 & 0xffffff00" (cast_expression "(uint)local_b0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b0")) (& "&") (number_literal "0xffffff00")) () ")")))) (; ";")) (if_statement "if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;" (if "if") (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) == 3)" (( "(") (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" (* "*") (cast_expression "(byte *)(iVar17 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xc)" (( "(") (binary_expression "iVar17 + 0xc" (identifier "iVar17") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_0008ebac;" (goto "goto") (statement_identifier "LAB_0008ebac") (; ";"))) (labeled_statement "LAB_0008ea48:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;" (statement_identifier "LAB_0008ea48") (: ":") (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";"))) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" (identifier "local_34") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ea63")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0008ea63:\n          *(code ***)((int)piVar16 + -0xc) = local_a0;" (statement_identifier "LAB_0008ea63") (: ":") (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";"))) (expression_statement "*(code **)((int)piVar16 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_dc" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" (identifier "local_2c") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" (identifier "local_28") (= "=") (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ea93")) (; ";")) (expression_statement "local_34 = pcVar8;" (assignment_expression "local_34 = pcVar8" (identifier "local_34") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_34 = (code *)*param_7;" (assignment_expression "local_34 = (code *)*param_7" (identifier "local_34") (= "=") (cast_expression "(code *)*param_7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7")))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_cc + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_cc + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_cc + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_cc + 8)" (* "*") (cast_expression "(undefined4 **)(local_cc + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 8)" (( "(") (binary_expression "local_cc + 8" (identifier "local_cc") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(code ***)((int)piVar16 + -8) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -8) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -8)" (* "*") (cast_expression "(code ***)((int)piVar16 + -8)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_cc;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_cc" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f2b5")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" ({ "{") (expression_statement "*puVar2 = local_34;" (assignment_expression "*puVar2 = local_34" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" (identifier "local_54") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_e0" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ead9")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = CONCAT44(extraout_EDX,local_a8);" (assignment_expression "uVar26 = CONCAT44(extraout_EDX,local_a8)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(extraout_EDX,local_a8)" (identifier "CONCAT44") (argument_list "(extraout_EDX,local_a8)" (( "(") (identifier "extraout_EDX") (, ",") (identifier "local_a8") () ")")))) (; ";")) (expression_statement "lVar28 = CONCAT44(extraout_EDX,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(extraout_EDX,local_c0)" (identifier "CONCAT44") (argument_list "(extraout_EDX,local_c0)" (( "(") (identifier "extraout_EDX") (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if ((char)local_b0 == '\0') goto LAB_0008eae9;" (if "if") (parenthesized_expression "((char)local_b0 == '\0')" (( "(") (binary_expression "(char)local_b0 == '\0'" (cast_expression "(char)local_b0" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_b0")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0008eae9;" (goto "goto") (statement_identifier "LAB_0008eae9") (; ";"))) (} "}")))) (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" (identifier "local_a8") (= "=") (cast_expression "(code *)uVar26" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (if_statement "if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }" (if "if") (parenthesized_expression "((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1))" (( "(") (binary_expression "(local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)" (parenthesized_expression "(local_b7 != '\0')" (( "(") (binary_expression "local_b7 != '\0'" (identifier "local_b7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar17 + 0xc) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(iVar17 + 0xc) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar17 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar17 + 0xc) & 0xf" (pointer_expression "*(byte *)(iVar17 + 0xc)" (* "*") (cast_expression "(byte *)(iVar17 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xc)" (( "(") (binary_expression "iVar17 + 0xc" (identifier "iVar17") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }\n        }" ({ "{") (if_statement "if (*(int *)(*local_bc + 8) == 0) {\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(*local_bc + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_bc + 8) == 0" (pointer_expression "*(int *)(*local_bc + 8)" (* "*") (cast_expression "(int *)(*local_bc + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_bc + 8)" (( "(") (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" (* "*") (identifier "local_bc")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);\n            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);" (assignment_expression "*(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20)" (pointer_expression "*(int *)((int)piVar16 + -4)" (* "*") (cast_expression "(int *)((int)piVar16 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f775" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f775")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }\n          else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_bc + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(*local_bc + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_bc + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(*local_bc + 8) + 0x1a25" (pointer_expression "*(int *)(*local_bc + 8)" (* "*") (cast_expression "(int *)(*local_bc + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_bc + 8)" (( "(") (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" (* "*") (identifier "local_bc")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }\n          }" ({ "{") (if_statement "if (uVar19 < 0x2b) {\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }" (if "if") (parenthesized_expression "(uVar19 < 0x2b)" (( "(") (binary_expression "uVar19 < 0x2b" (identifier "uVar19") (< "<") (number_literal "0x2b")) () ")")) (compound_statement "{\n                    \n                    \n              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();\n              return;\n            }" ({ "{") (expression_statement "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();" (call_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))()" (parenthesized_expression "(*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))" (( "(") (pointer_expression "*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" (* "*") (cast_expression "(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + (int)local_a4[uVar19 - 0x65eef])" (( "(") (binary_expression "(int)local_a4 + (int)local_a4[uVar19 - 0x65eef]" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (cast_expression "(int)local_a4[uVar19 - 0x65eef]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a4[uVar19 - 0x65eef]" (identifier "local_a4") ([ "[") (binary_expression "uVar19 - 0x65eef" (identifier "uVar19") (- "-") (number_literal "0x65eef")) (] "]")))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" (else "else") (compound_statement "{\n            local_a0 = *(code ***)(param_2 + 0x15c);\n            local_68 = (uint)*(ushort *)(iVar17 + 0xe);\n            *(undefined4 *)((int)piVar16 + -0xc) = 1;\n            *(undefined4 *)((int)piVar16 + -0x10) = 0;\n            local_8c = local_a0 + 0xd;\n            *(code ****)((int)piVar16 + -0x14) = &local_8c;\n            *(code ***)((int)piVar16 + -0x18) = &local_6c;\n            *(code ***)((int)piVar16 + -0x1c) = local_8c;\n            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n            local_6c = param_4;\n            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;\n            FUN_00074280();\n            uVar26 = CONCAT44(extraout_EDX_04,local_a8);\n            piVar16 = (int *)((int)piVar16 + -4);\n          }" ({ "{") (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_2 + 0x15c)" (* "*") (cast_expression "(code ***)(param_2 + 0x15c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x15c)" (( "(") (binary_expression "param_2 + 0x15c" (identifier "param_2") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "local_68 = (uint)*(ushort *)(iVar17 + 0xe);" (assignment_expression "local_68 = (uint)*(ushort *)(iVar17 + 0xe)" (identifier "local_68") (= "=") (binary_expression "(uint)*(ushort *)(iVar17 + 0xe)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar17 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xe)" (( "(") (binary_expression "iVar17 + 0xe" (identifier "iVar17") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = local_a0 + 0xd;" (assignment_expression "local_8c = local_a0 + 0xd" (identifier "local_8c") (= "=") (binary_expression "local_a0 + 0xd" (identifier "local_a0") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "*(code ****)((int)piVar16 + -0x14) = &local_8c;" (assignment_expression "*(code ****)((int)piVar16 + -0x14) = &local_8c" (pointer_expression "*(code ****)((int)piVar16 + -0x14)" (* "*") (cast_expression "(code ****)((int)piVar16 + -0x14)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_8c" (& "&") (identifier "local_8c"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0x18) = &local_6c;" (assignment_expression "*(code ***)((int)piVar16 + -0x18) = &local_6c" (pointer_expression "*(code ***)((int)piVar16 + -0x18)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0x18)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0x18)" (( "(") (binary_expression "(int)piVar16 + -0x18" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0x1c) = local_8c;" (assignment_expression "*(code ***)((int)piVar16 + -0x1c) = local_8c" (pointer_expression "*(code ***)((int)piVar16 + -0x1c)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0x1c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0x1c)" (( "(") (binary_expression "(int)piVar16 + -0x1c" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "*(undefined1 **)((int)piVar16 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)piVar16 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)piVar16 + -0x20)" (* "*") (cast_expression "(undefined1 **)((int)piVar16 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x20)" (( "(") (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "local_6c = param_4;" (assignment_expression "local_6c = param_4" (identifier "local_6c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x24)" (( "(") (binary_expression "(int)piVar16 + -0x24" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8f1a5")) (; ";")) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" (identifier "FUN_00074280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = CONCAT44(extraout_EDX_04,local_a8);" (assignment_expression "uVar26 = CONCAT44(extraout_EDX_04,local_a8)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(extraout_EDX_04,local_a8)" (identifier "CONCAT44") (argument_list "(extraout_EDX_04,local_a8)" (( "(") (identifier "extraout_EDX_04") (, ",") (identifier "local_a8") () ")")))) (; ";")) (expression_statement "piVar16 = (int *)((int)piVar16 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar16 + -4)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)piVar16 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" (identifier "local_a8") (= "=") (cast_expression "(code *)uVar26" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);" (assignment_expression "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)uVar26 >> 0x20),local_c0)" (( "(") (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (param_5 != local_a8) {\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(param_5 != local_a8)" (( "(") (binary_expression "param_5 != local_a8" (identifier "param_5") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n          local_b0 = param_4;\n          puVar15 = (undefined1 *)piVar16;\nLAB_0008ee30:\n          local_a8 = (code *)uVar26;\n          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);\n          if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }\n          piVar16 = (int *)puVar15;\n          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "local_b0 = param_4;" (assignment_expression "local_b0 = param_4" (identifier "local_b0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar15 = (undefined1 *)piVar16;" (assignment_expression "puVar15 = (undefined1 *)piVar16" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)piVar16" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar16"))) (; ";")) (labeled_statement "LAB_0008ee30:\n          local_a8 = (code *)uVar26;" (statement_identifier "LAB_0008ee30") (: ":") (expression_statement "local_a8 = (code *)uVar26;" (assignment_expression "local_a8 = (code *)uVar26" (identifier "local_a8") (= "=") (cast_expression "(code *)uVar26" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";"))) (expression_statement "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);" (assignment_expression "lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)uVar26 >> 0x20),local_c0)" (( "(") (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (*(int *)(*local_bc + 8) == 0) {\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(*local_bc + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_bc + 8) == 0" (pointer_expression "*(int *)(*local_bc + 8)" (* "*") (cast_expression "(int *)(*local_bc + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_bc + 8)" (( "(") (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" (* "*") (identifier "local_bc")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar15 + -0xc) = 0x5c;\n            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar15 + -8)" (* "*") (cast_expression "(undefined ***)(puVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8f71a;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8f71a" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f71a")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar16 = (int *)puVar15;" (assignment_expression "piVar16 = (int *)puVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)puVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (; ";")) (if_statement "if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_bc + 8) + 0x18b1)" (* "*") (cast_expression "(char *)(*(int *)(*local_bc + 8) + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_bc + 8) + 0x18b1)" (( "(") (binary_expression "*(int *)(*local_bc + 8) + 0x18b1" (pointer_expression "*(int *)(*local_bc + 8)" (* "*") (cast_expression "(int *)(*local_bc + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_bc + 8)" (( "(") (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" (* "*") (identifier "local_bc")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_5c = param_4;\n            iVar17 = *(int *)(param_2 + 0x158) + 0x14;\n            local_58 = param_5;\n            local_54 = local_b0;\n            local_50 = local_a8;\n            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);\n            iVar9 = iVar17;\n            if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }\n            local_78 = (code *)(iVar10 + 0x18);\n            *(undefined4 *)(puVar15 + -0xc) = 1;\n            *(undefined4 *)(puVar15 + -0x10) = 0;\n            *(code ***)(puVar15 + -0x14) = local_e4;\n            *(code ***)(puVar15 + -0x18) = &local_54;\n            *(code **)(puVar15 + -0x1c) = local_78;\n            *(undefined1 **)(puVar15 + -0x20) = local_d0;\n            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;\n            FUN_00074340();\n            piVar16 = *(int **)(*local_bc + 0xc);\n            if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }\n            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);\n            if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }\n            pbVar3 = local_c4;\n            lVar28 = CONCAT44(ppuVar13,local_c0);\n            piVar16 = (int *)(puVar15 + -4);\n            if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" (identifier "local_5c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar17 = *(int *)(param_2 + 0x158) + 0x14;" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158) + 0x14" (identifier "iVar17") (= "=") (binary_expression "*(int *)(param_2 + 0x158) + 0x14" (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")")))) (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "local_58 = param_5;" (assignment_expression "local_58 = param_5" (identifier "local_58") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_54 = local_b0;" (assignment_expression "local_54 = local_b0" (identifier "local_54") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_50 = local_a8;" (assignment_expression "local_50 = local_a8" (identifier "local_50") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*(int *)(param_2 + 0x158) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x158) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x18)" (( "(") (binary_expression "*(int *)(param_2 + 0x158) + 0x18" (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar17;" (assignment_expression "iVar9 = iVar17" (identifier "iVar9") (= "=") (identifier "iVar17")) (; ";")) (if_statement "if (iVar4 == 0) {\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }\n            else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0008eec0:\n              local_74 = &local_5c;\n              *(code ****)(puVar15 + -0x10) = &local_74;\n              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;\n              FUN_0007da50();\n              iVar10 = local_98;\n            }" ({ "{") (labeled_statement "LAB_0008eec0:\n              local_74 = &local_5c;" (statement_identifier "LAB_0008eec0") (: ":") (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" (identifier "local_74") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";"))) (expression_statement "*(code ****)(puVar15 + -0x10) = &local_74;" (assignment_expression "*(code ****)(puVar15 + -0x10) = &local_74" (pointer_expression "*(code ****)(puVar15 + -0x10)" (* "*") (cast_expression "(code ****)(puVar15 + -0x10)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_74" (& "&") (identifier "local_74"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x8eedb;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x8eedb" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8eedb")) (; ";")) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" (identifier "FUN_0007da50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" (identifier "iVar10") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);\nLAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;\n            }" ({ "{") (do_statement "do {\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              } while (*piVar16 != 0);" (do "do") (compound_statement "{\n                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }\n                piVar16 = (int *)(iVar10 + 0xc);\n                iVar4 = *piVar16;\n                iVar10 = iVar9;\n              }" ({ "{") (while_statement "while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }" (while "while") (parenthesized_expression "((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))))" (( "(") (parenthesized_expression "(iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))))" (( "(") (comma_expression "iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar4" (identifier "iVar10") (= "=") (identifier "iVar4")) (, ",") (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                       ((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" (identifier "param_4") (<= "<=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                        (param_5 <= *(code **)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" (identifier "param_4") (!= "!=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (|| "||") (parenthesized_expression "(param_5 <= *(code **)(iVar10 + 0x14))" (( "(") (binary_expression "param_5 <= *(code **)(iVar10 + 0x14)" (identifier "param_5") (<= "<=") (pointer_expression "*(code **)(iVar10 + 0x14)" (* "*") (cast_expression "(code **)(iVar10 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  iVar4 = *(int *)(iVar10 + 8);\n                  iVar9 = iVar10;\n                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;\n                }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar10 + 8);" (assignment_expression "iVar4 = *(int *)(iVar10 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" (identifier "iVar9") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008eeaa;" (goto "goto") (statement_identifier "LAB_0008eeaa") (; ";"))) (} "}"))) (expression_statement "piVar16 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar16 = (int *)(iVar10 + 0xc)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" (identifier "iVar4") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar16 != 0)" (( "(") (binary_expression "*piVar16 != 0" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0008eeaa:\n              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;" (statement_identifier "LAB_0008eeaa") (: ":") (if_statement "if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))\n              goto LAB_0008eec0;" (if "if") (parenthesized_expression "(((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))" (( "(") (binary_expression "((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))))" (parenthesized_expression "((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10)))" (( "(") (binary_expression "(iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar17 == iVar10)" (( "(") (binary_expression "iVar17 == iVar10" (identifier "iVar17") (== "==") (identifier "iVar10")) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" (( "(") (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" (identifier "param_4") (< "<") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" (identifier "param_4") (== "==") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "(param_5 < *(code **)(iVar10 + 0x14))" (( "(") (binary_expression "param_5 < *(code **)(iVar10 + 0x14)" (identifier "param_5") (< "<") (pointer_expression "*(code **)(iVar10 + 0x14)" (* "*") (cast_expression "(code **)(iVar10 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0008eec0;" (goto "goto") (statement_identifier "LAB_0008eec0") (; ";")))) (} "}")))) (expression_statement "local_78 = (code *)(iVar10 + 0x18);" (assignment_expression "local_78 = (code *)(iVar10 + 0x18)" (identifier "local_78") (= "=") (cast_expression "(code *)(iVar10 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code ***)(puVar15 + -0x14) = local_e4;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_e4" (pointer_expression "*(code ***)(puVar15 + -0x14)" (* "*") (cast_expression "(code ***)(puVar15 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_e4")) (; ";")) (expression_statement "*(code ***)(puVar15 + -0x18) = &local_54;" (assignment_expression "*(code ***)(puVar15 + -0x18) = &local_54" (pointer_expression "*(code ***)(puVar15 + -0x18)" (* "*") (cast_expression "(code ***)(puVar15 + -0x18)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(code **)(puVar15 + -0x1c) = local_78;" (assignment_expression "*(code **)(puVar15 + -0x1c) = local_78" (pointer_expression "*(code **)(puVar15 + -0x1c)" (* "*") (cast_expression "(code **)(puVar15 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_78")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8ef07;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8ef07" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8ef07")) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar16 = *(int **)(*local_bc + 0xc);" (assignment_expression "piVar16 = *(int **)(*local_bc + 0xc)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(*local_bc + 0xc)" (* "*") (cast_expression "(int **)(*local_bc + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_bc + 0xc)" (( "(") (binary_expression "*local_bc + 0xc" (pointer_expression "*local_bc" (* "*") (identifier "local_bc")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar16 == (int *)0x0) {\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;\n              *(undefined4 *)(puVar15 + -0x10) = 0x73;\n              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;\n              FUN_002446e0();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;" (assignment_expression "*(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e" (pointer_expression "*(undefined ***)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined ***)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65c0e" (identifier "local_a4") (+ "+") (number_literal "-0x65c0e"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x73")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8f759;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8f759" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8f759")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar13 = *(undefined ***)(*piVar16 + 0x104);" (assignment_expression "ppuVar13 = *(undefined ***)(*piVar16 + 0x104)" (identifier "ppuVar13") (= "=") (pointer_expression "*(undefined ***)(*piVar16 + 0x104)" (* "*") (cast_expression "(undefined ***)(*piVar16 + 0x104)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar16 + 0x104)" (( "(") (binary_expression "*piVar16 + 0x104" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (if_statement "if (ppuVar13 != local_a4 + -0x15e474) {\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" (if "if") (parenthesized_expression "(ppuVar13 != local_a4 + -0x15e474)" (( "(") (binary_expression "ppuVar13 != local_a4 + -0x15e474" (identifier "ppuVar13") (!= "!=") (binary_expression "local_a4 + -0x15e474" (identifier "local_a4") (+ "+") (number_literal "-0x15e474"))) () ")")) (compound_statement "{\n              *(code **)(puVar15 + -0xc) = local_b4;\n              *(code **)(puVar15 + -0x10) = local_a8;\n              *(code **)(puVar15 + -0x14) = local_b0;\n              *(code **)(puVar15 + -0x18) = param_5;\n              *(code **)(puVar15 + -0x1c) = param_4;\n              *(int *)(puVar15 + -0x20) = param_2;\n              *(int **)(puVar15 + -0x24) = piVar16;\n              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;\n              (*(code *)ppuVar13)();\n              ppuVar13 = extraout_EDX_02;\n            }" ({ "{") (expression_statement "*(code **)(puVar15 + -0xc) = local_b4;" (assignment_expression "*(code **)(puVar15 + -0xc) = local_b4" (pointer_expression "*(code **)(puVar15 + -0xc)" (* "*") (cast_expression "(code **)(puVar15 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "*(code **)(puVar15 + -0x10) = local_a8;" (assignment_expression "*(code **)(puVar15 + -0x10) = local_a8" (pointer_expression "*(code **)(puVar15 + -0x10)" (* "*") (cast_expression "(code **)(puVar15 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(code **)(puVar15 + -0x14) = local_b0;" (assignment_expression "*(code **)(puVar15 + -0x14) = local_b0" (pointer_expression "*(code **)(puVar15 + -0x14)" (* "*") (cast_expression "(code **)(puVar15 + -0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(code **)(puVar15 + -0x18) = param_5;" (assignment_expression "*(code **)(puVar15 + -0x18) = param_5" (pointer_expression "*(code **)(puVar15 + -0x18)" (* "*") (cast_expression "(code **)(puVar15 + -0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(code **)(puVar15 + -0x1c) = param_4;" (assignment_expression "*(code **)(puVar15 + -0x1c) = param_4" (pointer_expression "*(code **)(puVar15 + -0x1c)" (* "*") (cast_expression "(code **)(puVar15 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar15 + -0x20) = param_2" (pointer_expression "*(int *)(puVar15 + -0x20)" (* "*") (cast_expression "(int *)(puVar15 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int **)(puVar15 + -0x24) = piVar16;" (assignment_expression "*(int **)(puVar15 + -0x24) = piVar16" (pointer_expression "*(int **)(puVar15 + -0x24)" (* "*") (cast_expression "(int **)(puVar15 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar16")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = 0x8f0b1" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0x8f0b1")) (; ";")) (expression_statement "(*(code *)ppuVar13)();" (call_expression "(*(code *)ppuVar13)()" (parenthesized_expression "(*(code *)ppuVar13)" (( "(") (pointer_expression "*(code *)ppuVar13" (* "*") (cast_expression "(code *)ppuVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar13 = extraout_EDX_02;" (assignment_expression "ppuVar13 = extraout_EDX_02" (identifier "ppuVar13") (= "=") (identifier "extraout_EDX_02")) (; ";")) (} "}"))) (expression_statement "pbVar3 = local_c4;" (assignment_expression "pbVar3 = local_c4" (identifier "pbVar3") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "lVar28 = CONCAT44(ppuVar13,local_c0);" (assignment_expression "lVar28 = CONCAT44(ppuVar13,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(ppuVar13,local_c0)" (identifier "CONCAT44") (argument_list "(ppuVar13,local_c0)" (( "(") (identifier "ppuVar13") (, ",") (identifier "local_c0") () ")")))) (; ";")) (expression_statement "piVar16 = (int *)(puVar15 + -4);" (assignment_expression "piVar16 = (int *)(puVar15 + -4)" (identifier "piVar16") (= "=") (cast_expression "(int *)(puVar15 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if (local_c4 != (byte *)0x0) {\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_c4 != (byte *)0x0)" (( "(") (binary_expression "local_c4 != (byte *)0x0" (identifier "local_c4") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_a8 = (code *)&local_2c;\n              local_a0 = &local_34;\n              iVar17 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar15 + -0x14) = local_c4;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;\n              sVar6 = strlen(*(char **)(puVar15 + -0x14));\n              ppcVar5 = local_a0;\n              *(undefined4 *)(puVar15 + -8) = 0;\n              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;\n              *(byte **)(puVar15 + -0x10) = pbVar3;\n              *(code ***)(puVar15 + -0x14) = local_a0;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;\n              FUN_00072b90();\n              *(code ***)(puVar15 + -0xc) = ppcVar5;\n              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;\n              *(code ***)(puVar15 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;\n              FUN_00094bd0();\n              pcVar8 = local_9c;\n              if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }\n              piVar16 = (int *)(puVar15 + -8);\n              iVar17 = *(int *)(param_2 + 0x158);\n              lVar28 = CONCAT44(iVar17,local_c0);\n              if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }\n            }" ({ "{") (expression_statement "local_a8 = (code *)&local_2c;" (assignment_expression "local_a8 = (code *)&local_2c" (identifier "local_a8") (= "=") (cast_expression "(code *)&local_2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")))) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "iVar17 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar15 + -0x14) = local_c4;" (assignment_expression "*(byte **)(puVar15 + -0x14) = local_c4" (pointer_expression "*(byte **)(puVar15 + -0x14)" (* "*") (cast_expression "(byte **)(puVar15 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" (identifier "local_34") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef76;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef76" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8ef76")) (; ";")) (expression_statement "sVar6 = strlen(*(char **)(puVar15 + -0x14));" (assignment_expression "sVar6 = strlen(*(char **)(puVar15 + -0x14))" (identifier "sVar6") (= "=") (call_expression "strlen(*(char **)(puVar15 + -0x14))" (identifier "strlen") (argument_list "(*(char **)(puVar15 + -0x14))" (( "(") (pointer_expression "*(char **)(puVar15 + -0x14)" (* "*") (cast_expression "(char **)(puVar15 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "ppcVar5 = local_a0;" (assignment_expression "ppcVar5 = local_a0" (identifier "ppcVar5") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;" (assignment_expression "*(byte **)(puVar15 + -0xc) = pbVar3 + sVar6" (pointer_expression "*(byte **)(puVar15 + -0xc)" (* "*") (cast_expression "(byte **)(puVar15 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "pbVar3 + sVar6" (identifier "pbVar3") (+ "+") (identifier "sVar6"))) (; ";")) (expression_statement "*(byte **)(puVar15 + -0x10) = pbVar3;" (assignment_expression "*(byte **)(puVar15 + -0x10) = pbVar3" (pointer_expression "*(byte **)(puVar15 + -0x10)" (* "*") (cast_expression "(byte **)(puVar15 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "*(code ***)(puVar15 + -0x14) = local_a0;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_a0" (pointer_expression "*(code ***)(puVar15 + -0x14)" (* "*") (cast_expression "(code ***)(puVar15 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef8b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8ef8b")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code ***)(puVar15 + -0xc) = ppcVar5;" (assignment_expression "*(code ***)(puVar15 + -0xc) = ppcVar5" (pointer_expression "*(code ***)(puVar15 + -0xc)" (* "*") (cast_expression "(code ***)(puVar15 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppcVar5")) (; ";")) (expression_statement "*(int *)(puVar15 + -0x10) = iVar17 + 0x44;" (assignment_expression "*(int *)(puVar15 + -0x10) = iVar17 + 0x44" (pointer_expression "*(int *)(puVar15 + -0x10)" (* "*") (cast_expression "(int *)(puVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar17 + 0x44" (identifier "iVar17") (+ "+") (number_literal "0x44"))) (; ";")) (expression_statement "*(code ***)(puVar15 + -0x14) = &local_9c;" (assignment_expression "*(code ***)(puVar15 + -0x14) = &local_9c" (pointer_expression "*(code ***)(puVar15 + -0x14)" (* "*") (cast_expression "(code ***)(puVar15 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_9c" (& "&") (identifier "local_9c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x8ef9f" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8ef9f")) (; ";")) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" (identifier "FUN_00094bd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar8 = local_9c;" (assignment_expression "pcVar8 = local_9c" (identifier "pcVar8") (= "=") (identifier "local_9c")) (; ";")) (if_statement "if (local_34 != local_a8) {\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }" (if "if") (parenthesized_expression "(local_34 != local_a8)" (( "(") (binary_expression "local_34 != local_a8" (identifier "local_34") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n                *(code **)(puVar15 + -0x18) = local_34;\n                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;\n                FUN_003ae080();\n              }" ({ "{") (expression_statement "*(code **)(puVar15 + -0x18) = local_34;" (assignment_expression "*(code **)(puVar15 + -0x18) = local_34" (pointer_expression "*(code **)(puVar15 + -0x18)" (* "*") (cast_expression "(code **)(puVar15 + -0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0x8efc2" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x8efc2")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar16 = (int *)(puVar15 + -8);" (assignment_expression "piVar16 = (int *)(puVar15 + -8)" (identifier "piVar16") (= "=") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "iVar17 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar17 = *(int *)(param_2 + 0x158)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_2 + 0x158)" (* "*") (cast_expression "(int *)(param_2 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x158)" (( "(") (binary_expression "param_2 + 0x158" (identifier "param_2") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "lVar28 = CONCAT44(iVar17,local_c0);" (assignment_expression "lVar28 = CONCAT44(iVar17,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(iVar17,local_c0)" (identifier "CONCAT44") (argument_list "(iVar17,local_c0)" (( "(") (identifier "iVar17") (, ",") (identifier "local_c0") () ")")))) (; ";")) (if_statement "if (pcVar8 != (code *)(iVar17 + 0x48)) {\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }" (if "if") (parenthesized_expression "(pcVar8 != (code *)(iVar17 + 0x48))" (( "(") (binary_expression "pcVar8 != (code *)(iVar17 + 0x48)" (identifier "pcVar8") (!= "!=") (cast_expression "(code *)(iVar17 + 0x48)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x48)" (( "(") (binary_expression "iVar17 + 0x48" (identifier "iVar17") (+ "+") (number_literal "0x48")) () ")")))) () ")")) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                iVar4 = *(int *)(iVar17 + 0x18);\n                iVar9 = iVar17 + 0x14;\n                if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }\n                lVar28 = CONCAT44(iVar17,local_c0);\n                piVar16 = (int *)(puVar15 + -8);\n                puVar15 = puVar15 + -8;\n                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }\n              }" ({ "{") (expression_statement "local_34 = param_4;" (assignment_expression "local_34 = param_4" (identifier "local_34") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_30 = param_5;" (assignment_expression "local_30 = param_5" (identifier "local_30") (= "=") (identifier "param_5")) (; ";")) (expression_statement "iVar4 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar4 = *(int *)(iVar17 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar17 + 0x18)" (* "*") (cast_expression "(int *)(iVar17 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar17 + 0x14;" (assignment_expression "iVar9 = iVar17 + 0x14" (identifier "iVar9") (= "=") (binary_expression "iVar17 + 0x14" (identifier "iVar17") (+ "+") (number_literal "0x14"))) (; ";")) (if_statement "if (*(int *)(iVar17 + 0x18) == 0) {\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }\n                else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar17 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x18) == 0" (pointer_expression "*(int *)(iVar17 + 0x18)" (* "*") (cast_expression "(int *)(iVar17 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;\n                  FUN_0007da50();\n                  iVar10 = local_98;\n                  iVar17 = extraout_EDX_03;\n                }" ({ "{") (labeled_statement "LAB_0008f0f8:\n                  *(code ****)(puVar15 + -0x18) = &local_70;" (statement_identifier "LAB_0008f0f8") (: ":") (expression_statement "*(code ****)(puVar15 + -0x18) = &local_70;" (assignment_expression "*(code ****)(puVar15 + -0x18) = &local_70" (pointer_expression "*(code ****)(puVar15 + -0x18)" (* "*") (cast_expression "(code ****)(puVar15 + -0x18)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (; ";"))) (expression_statement "local_70 = local_a0;" (assignment_expression "local_70 = local_a0" (identifier "local_70") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0x8f116;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0x8f116" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x8f116")) (; ";")) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" (identifier "FUN_0007da50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = local_98;" (assignment_expression "iVar10 = local_98" (identifier "iVar10") (= "=") (identifier "local_98")) (; ";")) (expression_statement "iVar17 = extraout_EDX_03;" (assignment_expression "iVar17 = extraout_EDX_03" (identifier "iVar17") (= "=") (identifier "extraout_EDX_03")) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);\nLAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;\n                }" ({ "{") (do_statement "do {\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  } while (*piVar16 != 0);" (do "do") (compound_statement "{\n                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }\n                    piVar16 = (int *)(iVar10 + 0xc);\n                    iVar4 = *piVar16;\n                    iVar10 = iVar9;\n                  }" ({ "{") (while_statement "while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }" (while "while") (parenthesized_expression "((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))))" (( "(") (parenthesized_expression "(iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))))" (( "(") (comma_expression "iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (assignment_expression "iVar10 = iVar4" (identifier "iVar10") (= "=") (identifier "iVar4")) (, ",") (binary_expression "param_4 <= *(code **)(iVar10 + 0x10) &&\n                           ((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (binary_expression "param_4 <= *(code **)(iVar10 + 0x10)" (identifier "param_4") (<= "<=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "((param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))))" (( "(") (parenthesized_expression "(param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14)))" (( "(") (binary_expression "param_4 != *(code **)(iVar10 + 0x10) ||\n                            (param_5 <= *(code **)(iVar10 + 0x14))" (binary_expression "param_4 != *(code **)(iVar10 + 0x10)" (identifier "param_4") (!= "!=") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (|| "||") (parenthesized_expression "(param_5 <= *(code **)(iVar10 + 0x14))" (( "(") (binary_expression "param_5 <= *(code **)(iVar10 + 0x14)" (identifier "param_5") (<= "<=") (pointer_expression "*(code **)(iVar10 + 0x14)" (* "*") (cast_expression "(code **)(iVar10 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                      iVar4 = *(int *)(iVar10 + 8);\n                      iVar9 = iVar10;\n                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;\n                    }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar10 + 8);" (assignment_expression "iVar4 = *(int *)(iVar10 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" (identifier "iVar9") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 8) == 0" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008f022;" (goto "goto") (statement_identifier "LAB_0008f022") (; ";"))) (} "}"))) (expression_statement "piVar16 = (int *)(iVar10 + 0xc);" (assignment_expression "piVar16 = (int *)(iVar10 + 0xc)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" (identifier "iVar4") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar16 != 0)" (( "(") (binary_expression "*piVar16 != 0" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0008f022:\n                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;" (statement_identifier "LAB_0008f022") (: ":") (if_statement "if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))) goto LAB_0008f0f8;" (if "if") (parenthesized_expression "(((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      )))" (( "(") (binary_expression "((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||\n                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))" (parenthesized_expression "((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10)))" (( "(") (binary_expression "(iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))" (parenthesized_expression "(iVar10 == iVar17 + 0x14)" (( "(") (binary_expression "iVar10 == iVar17 + 0x14" (identifier "iVar10") (== "==") (binary_expression "iVar17 + 0x14" (identifier "iVar17") (+ "+") (number_literal "0x14"))) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(code **)(iVar10 + 0x10))" (( "(") (binary_expression "param_4 < *(code **)(iVar10 + 0x10)" (identifier "param_4") (< "<") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      ))" (( "(") (parenthesized_expression "(param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))\n                      )" (( "(") (binary_expression "param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))" (binary_expression "param_4 == *(code **)(iVar10 + 0x10)" (identifier "param_4") (== "==") (pointer_expression "*(code **)(iVar10 + 0x10)" (* "*") (cast_expression "(code **)(iVar10 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (&& "&&") (parenthesized_expression "(param_5 < *(code **)(iVar10 + 0x14))" (( "(") (binary_expression "param_5 < *(code **)(iVar10 + 0x14)" (identifier "param_5") (< "<") (pointer_expression "*(code **)(iVar10 + 0x14)" (* "*") (cast_expression "(code **)(iVar10 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0008f0f8;" (goto "goto") (statement_identifier "LAB_0008f0f8") (; ";")))) (} "}")))) (expression_statement "lVar28 = CONCAT44(iVar17,local_c0);" (assignment_expression "lVar28 = CONCAT44(iVar17,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(iVar17,local_c0)" (identifier "CONCAT44") (argument_list "(iVar17,local_c0)" (( "(") (identifier "iVar17") (, ",") (identifier "local_c0") () ")")))) (; ";")) (expression_statement "piVar16 = (int *)(puVar15 + -8);" (assignment_expression "piVar16 = (int *)(puVar15 + -8)" (identifier "piVar16") (= "=") (cast_expression "(int *)(puVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "puVar15 = puVar15 + -8;" (assignment_expression "puVar15 = puVar15 + -8" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8"))) (; ";")) (for_statement "for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" (for "for") (( "(") (assignment_expression "puVar2 = *(undefined4 **)(pcVar8 + 0x30)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(pcVar8 + 0x30)" (* "*") (cast_expression "(undefined4 **)(pcVar8 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x30)" (( "(") (binary_expression "pcVar8 + 0x30" (identifier "pcVar8") (+ "+") (number_literal "0x30")) () ")"))))) (; ";") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar2 = (undefined4 *)*puVar2" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)*puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) () ")") (compound_statement "{\n                  *(undefined4 *)(puVar15 + -0xc) = 1;\n                  *(undefined4 *)(puVar15 + -0x10) = 0;\n                  *(code ***)(puVar15 + -0x14) = local_84;\n                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;\n                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);\n                  *(undefined1 **)(puVar15 + -0x20) = local_d0;\n                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;\n                  local_84[0] = (code *)(iVar10 + 0x18);\n                  FUN_00074340();\n                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);\n                  piVar16 = (int *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code ***)(puVar15 + -0x14) = local_84;" (assignment_expression "*(code ***)(puVar15 + -0x14) = local_84" (pointer_expression "*(code ***)(puVar15 + -0x14)" (* "*") (cast_expression "(code ***)(puVar15 + -0x14)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(puVar15 + -0x18) = puVar2 + 1" (pointer_expression "*(undefined4 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);" (assignment_expression "*(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18)" (pointer_expression "*(code **)(puVar15 + -0x1c)" (* "*") (cast_expression "(code **)(puVar15 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (cast_expression "(code *)(iVar10 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x8f07b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x8f07b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8f07b")) (; ";")) (expression_statement "local_84[0] = (code *)(iVar10 + 0x18);" (assignment_expression "local_84[0] = (code *)(iVar10 + 0x18)" (subscript_expression "local_84[0]" (identifier "local_84") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(code *)(iVar10 + 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar28 = CONCAT44(extraout_EDX_01,local_c0);" (assignment_expression "lVar28 = CONCAT44(extraout_EDX_01,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(extraout_EDX_01,local_c0)" (identifier "CONCAT44") (argument_list "(extraout_EDX_01,local_c0)" (( "(") (identifier "extraout_EDX_01") (, ",") (identifier "local_c0") () ")")))) (; ";")) (expression_statement "piVar16 = (int *)(puVar15 + -4);" (assignment_expression "piVar16 = (int *)(puVar15 + -4)" (identifier "piVar16") (= "=") (cast_expression "(int *)(puVar15 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" (else "else") (compound_statement "{\n        if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }\n        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);\n        uVar7 = *(uint *)(param_4 + 0xbc);\n        local_a0 = *(code ***)(param_4 + 0xc0);\n        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }\n        local_5c = *(code **)(uVar7 + uVar14 * 4);\n        uVar27 = CONCAT44(uVar7,local_5c);\n        if (local_5c == (code *)0x0) goto LAB_0008f237;\n        if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }\n        local_5c = (code *)uVar27;\n        if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }\nLAB_0008ed18:\n        local_5c = (code *)uVar27;\n        pbVar3 = *(byte **)local_5c;\n        iVar17 = 8;\n        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar20 = pbVar3;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }\n        local_c4 = pbVar3;\n        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);\n        if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }\n        uVar26 = CONCAT44(uVar12,local_a8);\n        lVar28 = CONCAT44(uVar12,local_c0);\n        puVar15 = (undefined1 *)piVar16;\n        if (local_b5 != 0) goto LAB_0008ee30;\n      }" ({ "{") (if_statement "if (uVar14 < *(uint *)(param_4 + 0xb0)) {\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(uVar14 < *(uint *)(param_4 + 0xb0))" (( "(") (binary_expression "uVar14 < *(uint *)(param_4 + 0xb0)" (identifier "uVar14") (< "<") (pointer_expression "*(uint *)(param_4 + 0xb0)" (* "*") (cast_expression "(uint *)(param_4 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb0)" (( "(") (binary_expression "param_4 + 0xb0" (identifier "param_4") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (compound_statement "{\n          local_5c = (code *)0x0;\nLAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "local_5c = (code *)0x0;" (assignment_expression "local_5c = (code *)0x0" (identifier "local_5c") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0008f237:\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (statement_identifier "LAB_0008f237") (: ":") (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65ca7" (identifier "local_a4") (+ "+") (number_literal "-0x65ca7"))) (; ";"))) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x11c")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x19ca36" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19ca36"))) (; ";")) (expression_statement "*(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;" (assignment_expression "*(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258" (pointer_expression "*(undefined **)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined **)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_0008f258" (& "&") (identifier "UNK_0008f258"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);" (assignment_expression "uVar14 = uVar14 - *(uint *)(param_4 + 0xb0)" (identifier "uVar14") (= "=") (binary_expression "uVar14 - *(uint *)(param_4 + 0xb0)" (identifier "uVar14") (- "-") (pointer_expression "*(uint *)(param_4 + 0xb0)" (* "*") (cast_expression "(uint *)(param_4 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb0)" (( "(") (binary_expression "param_4 + 0xb0" (identifier "param_4") (+ "+") (number_literal "0xb0")) () ")")))))) (; ";")) (expression_statement "uVar7 = *(uint *)(param_4 + 0xbc);" (assignment_expression "uVar7 = *(uint *)(param_4 + 0xbc)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_4 + 0xbc)" (* "*") (cast_expression "(uint *)(param_4 + 0xbc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xbc)" (( "(") (binary_expression "param_4 + 0xbc" (identifier "param_4") (+ "+") (number_literal "0xbc")) () ")"))))) (; ";")) (expression_statement "local_a0 = *(code ***)(param_4 + 0xc0);" (assignment_expression "local_a0 = *(code ***)(param_4 + 0xc0)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_4 + 0xc0)" (* "*") (cast_expression "(code ***)(param_4 + 0xc0)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_4 + 0xc0)" (( "(") (binary_expression "param_4 + 0xc0" (identifier "param_4") (+ "+") (number_literal "0xc0")) () ")"))))) (; ";")) (if_statement "if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14)" (( "(") (binary_expression "(uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14" (call_expression "(uint)((int)((int)local_a0 - uVar7) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)((int)local_a0 - uVar7) >> 2)" (( "(") (binary_expression "(int)((int)local_a0 - uVar7) >> 2" (cast_expression "(int)((int)local_a0 - uVar7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_a0 - uVar7)" (( "(") (binary_expression "(int)local_a0 - uVar7" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (- "-") (identifier "uVar7")) () ")"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;\n          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;\n          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65c2b" (identifier "local_a4") (+ "+") (number_literal "-0x65c2b"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x19cc7b" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19cc7b"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f73b")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = *(code **)(uVar7 + uVar14 * 4);" (assignment_expression "local_5c = *(code **)(uVar7 + uVar14 * 4)" (identifier "local_5c") (= "=") (pointer_expression "*(code **)(uVar7 + uVar14 * 4)" (* "*") (cast_expression "(code **)(uVar7 + uVar14 * 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar7 + uVar14 * 4)" (( "(") (binary_expression "uVar7 + uVar14 * 4" (identifier "uVar7") (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar27 = CONCAT44(uVar7,local_5c);" (assignment_expression "uVar27 = CONCAT44(uVar7,local_5c)" (identifier "uVar27") (= "=") (call_expression "CONCAT44(uVar7,local_5c)" (identifier "CONCAT44") (argument_list "(uVar7,local_5c)" (( "(") (identifier "uVar7") (, ",") (identifier "local_5c") () ")")))) (; ";")) (if_statement "if (local_5c == (code *)0x0) goto LAB_0008f237;" (if "if") (parenthesized_expression "(local_5c == (code *)0x0)" (( "(") (binary_expression "local_5c == (code *)0x0" (identifier "local_5c") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0008f237;" (goto "goto") (statement_identifier "LAB_0008f237") (; ";"))) (if_statement "if (((byte)local_5c[0x2a] & 0x10) != 0) {\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }" (if "if") (parenthesized_expression "(((byte)local_5c[0x2a] & 0x10) != 0)" (( "(") (binary_expression "((byte)local_5c[0x2a] & 0x10) != 0" (parenthesized_expression "((byte)local_5c[0x2a] & 0x10)" (( "(") (binary_expression "(byte)local_5c[0x2a] & 0x10" (cast_expression "(byte)local_5c[0x2a]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x2a]" (identifier "local_5c") ([ "[") (number_literal "0x2a") (] "]"))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(code **)((int)piVar16 + -0xc) = local_5c;\n          *(int *)((int)piVar16 + -0x10) = param_2;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;\n          uVar27 = FUN_0034cd90();\n        }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -0xc) = local_5c;" (assignment_expression "*(code **)((int)piVar16 + -0xc) = local_5c" (pointer_expression "*(code **)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code **)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = param_2;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = param_2" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f222" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f222")) (; ";")) (expression_statement "uVar27 = FUN_0034cd90();" (assignment_expression "uVar27 = FUN_0034cd90()" (identifier "uVar27") (= "=") (call_expression "FUN_0034cd90()" (identifier "FUN_0034cd90") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "local_5c = (code *)uVar27;" (assignment_expression "local_5c = (code *)uVar27" (identifier "local_5c") (= "=") (cast_expression "(code *)uVar27" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar27"))) (; ";")) (if_statement "if (((byte)local_5c[0x2a] & 7) == 0) {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }\n        else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" (if "if") (parenthesized_expression "(((byte)local_5c[0x2a] & 7) == 0)" (( "(") (binary_expression "((byte)local_5c[0x2a] & 7) == 0" (parenthesized_expression "((byte)local_5c[0x2a] & 7)" (( "(") (binary_expression "(byte)local_5c[0x2a] & 7" (cast_expression "(byte)local_5c[0x2a]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x2a]" (identifier "local_5c") ([ "[") (number_literal "0x2a") (] "]"))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b0 = *(code **)(local_5c + 8);\n          local_b4 = local_d8 + local_ac;\n          bVar22 = false;\n          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;\n          if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }\n        }" ({ "{") (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" (identifier "local_d8") (= "=") (pointer_expression "*(code **)(local_5c + 0x30)" (* "*") (cast_expression "(code **)(local_5c + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 0x30)" (( "(") (binary_expression "local_5c + 0x30" (identifier "local_5c") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_b0 = *(code **)(local_5c + 8);" (assignment_expression "local_b0 = *(code **)(local_5c + 8)" (identifier "local_b0") (= "=") (pointer_expression "*(code **)(local_5c + 8)" (* "*") (cast_expression "(code **)(local_5c + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 8)" (( "(") (binary_expression "local_5c + 8" (identifier "local_5c") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" (identifier "local_b4") (= "=") (binary_expression "local_d8 + local_ac" (identifier "local_d8") (+ "+") (identifier "local_ac"))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = ((byte)local_b0[0x2c] & 1) == 0;" (assignment_expression "bVar24 = ((byte)local_b0[0x2c] & 1) == 0" (identifier "bVar24") (= "=") (binary_expression "((byte)local_b0[0x2c] & 1) == 0" (parenthesized_expression "((byte)local_b0[0x2c] & 1)" (( "(") (binary_expression "(byte)local_b0[0x2c] & 1" (cast_expression "(byte)local_b0[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_b0[0x2c]" (identifier "local_b0") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar24) {\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }\n          else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n            cVar1 = local_5c[0x28];\n            local_a8 = *(code **)(local_5c + 0xc);\n            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;\n            bVar22 = ((byte)cVar1 & 0xf) < 2;\n            bVar24 = ((byte)cVar1 & 0xf) == 2;\n            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }\n          }" ({ "{") (expression_statement "cVar1 = local_5c[0x28];" (assignment_expression "cVar1 = local_5c[0x28]" (identifier "cVar1") (= "=") (subscript_expression "local_5c[0x28]" (identifier "local_5c") ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (expression_statement "local_a8 = *(code **)(local_5c + 0xc);" (assignment_expression "local_a8 = *(code **)(local_5c + 0xc)" (identifier "local_a8") (= "=") (pointer_expression "*(code **)(local_5c + 0xc)" (* "*") (cast_expression "(code **)(local_5c + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 0xc)" (( "(") (binary_expression "local_5c + 0xc" (identifier "local_5c") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_b5 = (byte)local_5c[0x2b] >> 5 & 1;" (assignment_expression "local_b5 = (byte)local_5c[0x2b] >> 5 & 1" (identifier "local_b5") (= "=") (binary_expression "(byte)local_5c[0x2b] >> 5 & 1" (binary_expression "(byte)local_5c[0x2b] >> 5" (cast_expression "(byte)local_5c[0x2b]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x2b]" (identifier "local_5c") ([ "[") (number_literal "0x2b") (] "]"))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar22 = ((byte)cVar1 & 0xf) < 2;" (assignment_expression "bVar22 = ((byte)cVar1 & 0xf) < 2" (identifier "bVar22") (= "=") (binary_expression "((byte)cVar1 & 0xf) < 2" (parenthesized_expression "((byte)cVar1 & 0xf)" (( "(") (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar1")) (& "&") (number_literal "0xf")) () ")")) (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar24 = ((byte)cVar1 & 0xf) == 2;" (assignment_expression "bVar24 = ((byte)cVar1 & 0xf) == 2" (identifier "bVar24") (= "=") (binary_expression "((byte)cVar1 & 0xf) == 2" (parenthesized_expression "((byte)cVar1 & 0xf)" (( "(") (binary_expression "(byte)cVar1 & 0xf" (cast_expression "(byte)cVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar1")) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "2"))) (; ";")) (expression_statement "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (identifier "uVar27") (= "=") (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(cVar1,local_5c)" (identifier "CONCAT14") (argument_list "(cVar1,local_5c)" (( "(") (identifier "cVar1") (, ",") (identifier "local_5c") () ")")))) (& "&") (number_literal "0xfffffffff"))) (; ";")) (if_statement "if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n              bVar22 = false;\n              bVar24 = local_b7 == '\0';\n              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;\n              if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }\n            }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = local_b7 == '\0';" (assignment_expression "bVar24 = local_b7 == '\0'" (identifier "bVar24") (= "=") (binary_expression "local_b7 == '\0'" (identifier "local_b7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;" (assignment_expression "uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (identifier "uVar27") (= "=") (binary_expression "(ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff" (cast_expression "(ulonglong)CONCAT14(cVar1,local_5c)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(cVar1,local_5c)" (identifier "CONCAT14") (argument_list "(cVar1,local_5c)" (( "(") (identifier "cVar1") (, ",") (identifier "local_5c") () ")")))) (& "&") (number_literal "0xfffffffff"))) (; ";")) (if_statement "if (!bVar24) {\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n                if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }\n                local_a0 = *(code ***)(param_2 + 0x15c);\n                *(undefined4 *)((int)piVar16 + -0xc) = 1;\n                *(undefined4 *)((int)piVar16 + -0x10) = 0;\n                *(code ****)((int)piVar16 + -0x14) = &local_88;\n                *(code ***)((int)piVar16 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(code ***)((int)piVar16 + -0x1c) = local_88;\n                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;\n                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;\n                local_64 = local_b0;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);\n                bVar24 = piVar16 == (int *)0x4;\n                piVar16 = (int *)((int)piVar16 + -4);\n                uVar27 = CONCAT44(extraout_EDX_05,local_5c);\n              }" ({ "{") (if_statement "if (local_b5 != 0) {\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }" (if "if") (parenthesized_expression "(local_b5 != 0)" (( "(") (binary_expression "local_b5 != 0" (identifier "local_b5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar17 = *(int *)(*local_bc + 8);\n                  if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }\n                }" ({ "{") (expression_statement "iVar17 = *(int *)(*local_bc + 8);" (assignment_expression "iVar17 = *(int *)(*local_bc + 8)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(*local_bc + 8)" (* "*") (cast_expression "(int *)(*local_bc + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_bc + 8)" (( "(") (binary_expression "*local_bc + 8" (pointer_expression "*local_bc" (* "*") (identifier "local_bc")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *(code **)((int)piVar16 + -4) = local_5c;\n                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;\n                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;\n                    FUN_002446e0();\n                  }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -4) = local_5c;" (assignment_expression "*(code **)((int)piVar16 + -4) = local_5c" (pointer_expression "*(code **)((int)piVar16 + -4)" (* "*") (cast_expression "(code **)((int)piVar16 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)piVar16 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_a4 + -0x1a1d93" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f7e5")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }" (if "if") (parenthesized_expression "((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0))" (( "(") (binary_expression "(*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)" (parenthesized_expression "(*(char *)(iVar17 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar17 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar17 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar17 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x1a25)" (( "(") (binary_expression "iVar17 + 0x1a25" (identifier "iVar17") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(((byte)local_5c[0x29] & 3) == 0)" (( "(") (binary_expression "((byte)local_5c[0x29] & 3) == 0" (parenthesized_expression "((byte)local_5c[0x29] & 3)" (( "(") (binary_expression "(byte)local_5c[0x29] & 3" (cast_expression "(byte)local_5c[0x29]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[0x29]" (identifier "local_5c") ([ "[") (number_literal "0x29") (] "]"))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    bVar22 = uVar19 < 0x2a;\n                    bVar24 = uVar19 == 0x2a;\n                    uVar27 = CONCAT44(iVar17,local_5c);\n                    if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008ed18;\n                  }" ({ "{") (expression_statement "bVar22 = uVar19 < 0x2a;" (assignment_expression "bVar22 = uVar19 < 0x2a" (identifier "bVar22") (= "=") (binary_expression "uVar19 < 0x2a" (identifier "uVar19") (< "<") (number_literal "0x2a"))) (; ";")) (expression_statement "bVar24 = uVar19 == 0x2a;" (assignment_expression "bVar24 = uVar19 == 0x2a" (identifier "bVar24") (= "=") (binary_expression "uVar19 == 0x2a" (identifier "uVar19") (== "==") (number_literal "0x2a"))) (; ";")) (expression_statement "uVar27 = CONCAT44(iVar17,local_5c);" (assignment_expression "uVar27 = CONCAT44(iVar17,local_5c)" (identifier "uVar27") (= "=") (call_expression "CONCAT44(iVar17,local_5c)" (identifier "CONCAT44") (argument_list "(iVar17,local_5c)" (( "(") (identifier "iVar17") (, ",") (identifier "local_5c") () ")")))) (; ";")) (if_statement "if (uVar19 < 0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" (if "if") (parenthesized_expression "(uVar19 < 0x2b)" (( "(") (binary_expression "uVar19 < 0x2b" (identifier "uVar19") (< "<") (number_literal "0x2b")) () ")")) (compound_statement "{\n                    \n                    \n                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();\n                      return;\n                    }" ({ "{") (expression_statement "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))" (( "(") (pointer_expression "*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" (* "*") (cast_expression "(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a4[uVar19 - 0x65ec4] + (int)local_a4)" (( "(") (binary_expression "local_a4[uVar19 - 0x65ec4] + (int)local_a4" (subscript_expression "local_a4[uVar19 - 0x65ec4]" (identifier "local_a4") ([ "[") (binary_expression "uVar19 - 0x65ec4" (identifier "uVar19") (- "-") (number_literal "0x65ec4")) (] "]")) (+ "+") (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0008ed18;" (goto "goto") (statement_identifier "LAB_0008ed18") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_a0 = *(code ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(code ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(code ***)(param_2 + 0x15c)" (* "*") (cast_expression "(code ***)(param_2 + 0x15c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 0x15c)" (( "(") (binary_expression "param_2 + 0x15c" (identifier "param_2") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(code ****)((int)piVar16 + -0x14) = &local_88;" (assignment_expression "*(code ****)((int)piVar16 + -0x14) = &local_88" (pointer_expression "*(code ****)((int)piVar16 + -0x14)" (* "*") (cast_expression "(code ****)((int)piVar16 + -0x14)" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0x18) = &local_64;" (assignment_expression "*(code ***)((int)piVar16 + -0x18) = &local_64" (pointer_expression "*(code ***)((int)piVar16 + -0x18)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0x18)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0x18)" (( "(") (binary_expression "(int)piVar16 + -0x18" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "local_88 = local_a0 + 0xd;" (assignment_expression "local_88 = local_a0 + 0xd" (identifier "local_88") (= "=") (binary_expression "local_a0 + 0xd" (identifier "local_a0") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0x1c) = local_88;" (assignment_expression "*(code ***)((int)piVar16 + -0x1c) = local_88" (pointer_expression "*(code ***)((int)piVar16 + -0x1c)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0x1c)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0x1c)" (( "(") (binary_expression "(int)piVar16 + -0x1c" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_88")) (; ";")) (expression_statement "*(undefined1 **)((int)piVar16 + -0x20) = local_d0;" (assignment_expression "*(undefined1 **)((int)piVar16 + -0x20) = local_d0" (pointer_expression "*(undefined1 **)((int)piVar16 + -0x20)" (* "*") (cast_expression "(undefined1 **)((int)piVar16 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x20)" (( "(") (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x24)" (( "(") (binary_expression "(int)piVar16 + -0x24" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8f43e")) (; ";")) (expression_statement "local_64 = local_b0;" (assignment_expression "local_64 = local_b0" (identifier "local_64") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_60 = local_a8;" (assignment_expression "local_60 = local_a8" (identifier "local_60") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" (identifier "FUN_00074280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);" (assignment_expression "bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20)" (identifier "bVar22") (= "=") (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffe3")) (< "<") (cast_expression "(undefined1 *)((int)piVar16 + -0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x20)" (( "(") (binary_expression "(int)piVar16 + -0x20" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "bVar24 = piVar16 == (int *)0x4;" (assignment_expression "bVar24 = piVar16 == (int *)0x4" (identifier "bVar24") (= "=") (binary_expression "piVar16 == (int *)0x4" (identifier "piVar16") (== "==") (cast_expression "(int *)0x4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "piVar16 = (int *)((int)piVar16 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar16 + -4)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)piVar16 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -4)" (( "(") (binary_expression "(int)piVar16 + -4" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "uVar27 = CONCAT44(extraout_EDX_05,local_5c);" (assignment_expression "uVar27 = CONCAT44(extraout_EDX_05,local_5c)" (identifier "uVar27") (= "=") (call_expression "CONCAT44(extraout_EDX_05,local_5c)" (identifier "CONCAT44") (argument_list "(extraout_EDX_05,local_5c)" (( "(") (identifier "extraout_EDX_05") (, ",") (identifier "local_5c") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" (else "else") (compound_statement "{\n            local_b5 = 0;\n            local_a8 = (code *)0x0;\n            local_b0 = (code *)0x0;\n            uVar27 = CONCAT44(local_b4,local_5c);\n          }" ({ "{") (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" (identifier "local_b5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = (code *)0x0;" (assignment_expression "local_a8 = (code *)0x0" (identifier "local_a8") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" (identifier "local_b0") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar27 = CONCAT44(local_b4,local_5c);" (assignment_expression "uVar27 = CONCAT44(local_b4,local_5c)" (identifier "uVar27") (= "=") (call_expression "CONCAT44(local_b4,local_5c)" (identifier "CONCAT44") (argument_list "(local_b4,local_5c)" (( "(") (identifier "local_b4") (, ",") (identifier "local_5c") () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" (else "else") (compound_statement "{\n          local_d8 = *(code **)(local_5c + 0x30);\n          local_b5 = 0;\n          local_a8 = (code *)0x0;\n          bVar22 = CARRY4(local_ac,(uint)local_d8);\n          local_b4 = local_d8 + local_ac;\n          bVar24 = local_b4 == (code *)0x0;\n          local_b0 = (code *)0x0;\n        }" ({ "{") (expression_statement "local_d8 = *(code **)(local_5c + 0x30);" (assignment_expression "local_d8 = *(code **)(local_5c + 0x30)" (identifier "local_d8") (= "=") (pointer_expression "*(code **)(local_5c + 0x30)" (* "*") (cast_expression "(code **)(local_5c + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_5c + 0x30)" (( "(") (binary_expression "local_5c + 0x30" (identifier "local_5c") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_b5 = 0;" (assignment_expression "local_b5 = 0" (identifier "local_b5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = (code *)0x0;" (assignment_expression "local_a8 = (code *)0x0" (identifier "local_a8") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar22 = CARRY4(local_ac,(uint)local_d8);" (assignment_expression "bVar22 = CARRY4(local_ac,(uint)local_d8)" (identifier "bVar22") (= "=") (call_expression "CARRY4(local_ac,(uint)local_d8)" (identifier "CARRY4") (argument_list "(local_ac,(uint)local_d8)" (( "(") (identifier "local_ac") (, ",") (cast_expression "(uint)local_d8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_d8")) () ")")))) (; ";")) (expression_statement "local_b4 = local_d8 + local_ac;" (assignment_expression "local_b4 = local_d8 + local_ac" (identifier "local_b4") (= "=") (binary_expression "local_d8 + local_ac" (identifier "local_d8") (+ "+") (identifier "local_ac"))) (; ";")) (expression_statement "bVar24 = local_b4 == (code *)0x0;" (assignment_expression "bVar24 = local_b4 == (code *)0x0" (identifier "bVar24") (= "=") (binary_expression "local_b4 == (code *)0x0" (identifier "local_b4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "local_b0 = (code *)0x0;" (assignment_expression "local_b0 = (code *)0x0" (identifier "local_b0") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_0008ed18:\n        local_5c = (code *)uVar27;" (statement_identifier "LAB_0008ed18") (: ":") (expression_statement "local_5c = (code *)uVar27;" (assignment_expression "local_5c = (code *)uVar27" (identifier "local_5c") (= "=") (cast_expression "(code *)uVar27" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar27"))) (; ";"))) (expression_statement "pbVar3 = *(byte **)local_5c;" (assignment_expression "pbVar3 = *(byte **)local_5c" (identifier "pbVar3") (= "=") (pointer_expression "*(byte **)local_5c" (* "*") (cast_expression "(byte **)local_5c" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_5c")))) (; ";")) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" (identifier "iVar17") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar18 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar18 = (byte *)((int)local_a4 + -0x19ca26)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)((int)local_a4 + -0x19ca26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + -0x19ca26)" (( "(") (binary_expression "(int)local_a4 + -0x19ca26" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19ca26")) () ")")))) (; ";")) (expression_statement "pbVar20 = pbVar3;" (assignment_expression "pbVar20 = pbVar3" (identifier "pbVar20") (= "=") (identifier "pbVar3")) (; ";")) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" (identifier "bVar24") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (if_statement "if (bVar22) {\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }\n        else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n          cVar11 = '\0';\n          pbVar3 = pbVar3 + 8;\n        }" ({ "{") (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" (identifier "cVar11") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pbVar3 = pbVar3 + 8;" (assignment_expression "pbVar3 = pbVar3 + 8" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + 8" (identifier "pbVar3") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" (else "else") (compound_statement "{\n          iVar17 = 7;\n          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar20 = pbVar3;\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          cVar11 = (!bVar23 && !bVar22) - bVar23;\n          pbVar3 = pbVar3 + 7;\n          if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }\n        }" ({ "{") (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" (identifier "iVar17") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar18 = (byte *)((int)local_a4 + -0x19ca1d)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)((int)local_a4 + -0x19ca1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + -0x19ca1d)" (( "(") (binary_expression "(int)local_a4 + -0x19ca1d" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "-0x19ca1d")) () ")")))) (; ";")) (expression_statement "pbVar20 = pbVar3;" (assignment_expression "pbVar20 = pbVar3" (identifier "pbVar20") (= "=") (identifier "pbVar3")) (; ";")) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "cVar11 = (!bVar23 && !bVar22) - bVar23;" (assignment_expression "cVar11 = (!bVar23 && !bVar22) - bVar23" (identifier "cVar11") (= "=") (binary_expression "(!bVar23 && !bVar22) - bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (- "-") (identifier "bVar23"))) (; ";")) (expression_statement "pbVar3 = pbVar3 + 7;" (assignment_expression "pbVar3 = pbVar3 + 7" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + 7" (identifier "pbVar3") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (cVar11 != '\0') {\n            pbVar3 = local_c4;\n          }" (if "if") (parenthesized_expression "(cVar11 != '\0')" (( "(") (binary_expression "cVar11 != '\0'" (identifier "cVar11") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            pbVar3 = local_c4;\n          }" ({ "{") (expression_statement "pbVar3 = local_c4;" (assignment_expression "pbVar3 = local_c4" (identifier "pbVar3") (= "=") (identifier "local_c4")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_c4 = pbVar3;" (assignment_expression "local_c4 = pbVar3" (identifier "local_c4") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);" (assignment_expression "uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11)" (identifier "uVar12") (= "=") (call_expression "CONCAT31((int3)(uVar27 >> 0x28),cVar11)" (identifier "CONCAT31") (argument_list "((int3)(uVar27 >> 0x28),cVar11)" (( "(") (call_expression "(int3)(uVar27 >> 0x28)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar27 >> 0x28)" (( "(") (binary_expression "uVar27 >> 0x28" (identifier "uVar27") (>> ">>") (number_literal "0x28")) () ")"))) (, ",") (identifier "cVar11") () ")")))) (; ";")) (if_statement "if (local_b6 != '\0') {\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" (if "if") (parenthesized_expression "(local_b6 != '\0')" (( "(") (binary_expression "local_b6 != '\0'" (identifier "local_b6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_c8 + 4);\n          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }\n          *(code ***)((int)piVar16 + -0xc) = local_a0;\n          *(code **)((int)piVar16 + -0x10) = local_dc;\n          local_34 = local_d8;\n          local_30 = (code *)0x0;\n          local_2c = local_ac;\n          local_28 = (int)local_ac >> 0x1f;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;\n          FUN_00073e70();\n          local_30 = (code *)0x0;\n          local_34 = (code *)*param_7;\n          puVar2 = *(undefined4 **)(local_cc + 4);\n          if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }\n          local_54 = (code *)0x0;\n          *(code ***)((int)piVar16 + -0xc) = &local_54;\n          *(int *)((int)piVar16 + -0x10) = local_e0;\n          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;\n          FUN_00074020();\n          uVar12 = extraout_EDX_00;\n        }" ({ "{") (if_statement "if (local_b5 == 0) {\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }\n          else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" (if "if") (parenthesized_expression "(local_b5 == 0)" (( "(") (binary_expression "local_b5 == 0" (identifier "local_b5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_34 = (code *)0x0;\n            local_30 = (code *)0x0;\n          }" ({ "{") (expression_statement "local_34 = (code *)0x0;" (assignment_expression "local_34 = (code *)0x0" (identifier "local_34") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" (else "else") (compound_statement "{\n            local_34 = local_b0;\n            local_30 = local_a8;\n          }" ({ "{") (expression_statement "local_34 = local_b0;" (assignment_expression "local_34 = local_b0" (identifier "local_34") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_30 = local_a8;" (assignment_expression "local_30 = local_a8" (identifier "local_30") (= "=") (identifier "local_a8")) (; ";")) (} "}")))) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x10) = local_c0;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x10) = local_c0" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ed86")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_c8 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_c8 + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_c8 + 4)" (* "*") (cast_expression "(undefined4 **)(local_c8 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 4)" (( "(") (binary_expression "local_c8 + 4" (identifier "local_c8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_c8 + 8)) {\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_c8 + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_c8 + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_c8 + 8)" (* "*") (cast_expression "(undefined4 **)(local_c8 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 8)" (( "(") (binary_expression "local_c8 + 8" (identifier "local_c8") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = &local_5c;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_c8;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;\n            FUN_000726c0();\n          }" ({ "{") (expression_statement "*(code ***)((int)piVar16 + -8) = &local_5c;" (assignment_expression "*(code ***)((int)piVar16 + -8) = &local_5c" (pointer_expression "*(code ***)((int)piVar16 + -8)" (* "*") (cast_expression "(code ***)((int)piVar16 + -8)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_c8;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_c8" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f393" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f393")) (; ";")) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" (identifier "FUN_000726c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;\n          }" ({ "{") (expression_statement "*puVar2 = local_5c;" (assignment_expression "*puVar2 = local_5c" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 **)(local_c8 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_c8 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_c8 + 4)" (* "*") (cast_expression "(undefined4 **)(local_c8 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 4)" (( "(") (binary_expression "local_c8 + 4" (identifier "local_c8") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(code ***)((int)piVar16 + -0xc) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(code **)((int)piVar16 + -0x10) = local_dc;" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_dc" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_34 = local_d8;" (assignment_expression "local_34 = local_d8" (identifier "local_34") (= "=") (identifier "local_d8")) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c = local_ac;" (assignment_expression "local_2c = local_ac" (identifier "local_2c") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_28 = (int)local_ac >> 0x1f;" (assignment_expression "local_28 = (int)local_ac >> 0x1f" (identifier "local_28") (= "=") (binary_expression "(int)local_ac >> 0x1f" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8edda" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8edda")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_34 = (code *)*param_7;" (assignment_expression "local_34 = (code *)*param_7" (identifier "local_34") (= "=") (cast_expression "(code *)*param_7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7")))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_cc + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_cc + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_cc + 8)) {\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_cc + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_cc + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_cc + 8)" (* "*") (cast_expression "(undefined4 **)(local_cc + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 8)" (( "(") (binary_expression "local_cc + 8" (identifier "local_cc") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(code ***)((int)piVar16 + -8) = local_a0;\n            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;\n            *(int *)((int)piVar16 + -0x10) = local_cc;\n            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(code ***)((int)piVar16 + -8) = local_a0;" (assignment_expression "*(code ***)((int)piVar16 + -8) = local_a0" (pointer_expression "*(code ***)((int)piVar16 + -8)" (* "*") (cast_expression "(code ***)((int)piVar16 + -8)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -8)" (( "(") (binary_expression "(int)piVar16 + -8" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar16 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)((int)piVar16 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)((int)piVar16 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)piVar16 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_cc;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_cc" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8f3b5")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar2 = local_34;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_cc + 4) = puVar2 + 2;\n          }" ({ "{") (expression_statement "*puVar2 = local_34;" (assignment_expression "*puVar2 = local_34" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_cc + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_cc + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_cc + 4)" (* "*") (cast_expression "(undefined4 **)(local_cc + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_cc + 4)" (( "(") (binary_expression "local_cc + 4" (identifier "local_cc") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" (identifier "local_54") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(code ***)((int)piVar16 + -0xc) = &local_54;" (assignment_expression "*(code ***)((int)piVar16 + -0xc) = &local_54" (pointer_expression "*(code ***)((int)piVar16 + -0xc)" (* "*") (cast_expression "(code ***)((int)piVar16 + -0xc)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar16 + -0xc)" (( "(") (binary_expression "(int)piVar16 + -0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)((int)piVar16 + -0x10) = local_e0;" (assignment_expression "*(int *)((int)piVar16 + -0x10) = local_e0" (pointer_expression "*(int *)((int)piVar16 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ee20")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" (identifier "uVar12") (= "=") (identifier "extraout_EDX_00")) (; ";")) (} "}"))) (expression_statement "uVar26 = CONCAT44(uVar12,local_a8);" (assignment_expression "uVar26 = CONCAT44(uVar12,local_a8)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(uVar12,local_a8)" (identifier "CONCAT44") (argument_list "(uVar12,local_a8)" (( "(") (identifier "uVar12") (, ",") (identifier "local_a8") () ")")))) (; ";")) (expression_statement "lVar28 = CONCAT44(uVar12,local_c0);" (assignment_expression "lVar28 = CONCAT44(uVar12,local_c0)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(uVar12,local_c0)" (identifier "CONCAT44") (argument_list "(uVar12,local_c0)" (( "(") (identifier "uVar12") (, ",") (identifier "local_c0") () ")")))) (; ";")) (expression_statement "puVar15 = (undefined1 *)piVar16;" (assignment_expression "puVar15 = (undefined1 *)piVar16" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)piVar16" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar16"))) (; ";")) (if_statement "if (local_b5 != 0) goto LAB_0008ee30;" (if "if") (parenthesized_expression "(local_b5 != 0)" (( "(") (binary_expression "local_b5 != 0" (identifier "local_b5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008ee30;" (goto "goto") (statement_identifier "LAB_0008ee30") (; ";"))) (} "}")))) (labeled_statement "LAB_0008eae9:\n      local_c0 = (undefined4)lVar28;" (statement_identifier "LAB_0008eae9") (: ":") (expression_statement "local_c0 = (undefined4)lVar28;" (assignment_expression "local_c0 = (undefined4)lVar28" (identifier "local_c0") (= "=") (cast_expression "(undefined4)lVar28" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar28"))) (; ";"))) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_7 = param_7 + 3;" (assignment_expression "param_7 = param_7 + 3" (identifier "param_7") (= "=") (binary_expression "param_7 + 3" (identifier "param_7") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_8 != local_d4)" (( "(") (binary_expression "param_8 != local_d4" (identifier "param_8") (!= "!=") (identifier "local_d4")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_4c[0] != local_e8) {\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_4c[0] != local_e8)" (( "(") (binary_expression "local_4c[0] != local_e8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_e8")) () ")")) (compound_statement "{\n    *(code **)((int)piVar16 + -0x10) = local_4c[0];\n    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "*(code **)((int)piVar16 + -0x10) = local_4c[0];" (assignment_expression "*(code **)((int)piVar16 + -0x10) = local_4c[0]" (pointer_expression "*(code **)((int)piVar16 + -0x10)" (* "*") (cast_expression "(code **)((int)piVar16 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + -0x10)" (( "(") (binary_expression "(int)piVar16 + -0x10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;" (assignment_expression "*(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea" (pointer_expression "*(undefined4 *)((int)piVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + -0x14)" (( "(") (binary_expression "(int)piVar16 + -0x14" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ebea")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void gc_process_relocs(Target_x86_64<32> * this, Symbol_table * symtab,
   Layout * layout, Sized_relobj_file<32,_false> * object, uint data_shndx, uint sh_type, uchar *
   prelocs, size_t reloc_count, Output_section * output_section, bool needs_special_offset_handling,
   size_t local_symbol_count, uchar * plocal_symbols) */

void __thiscall
anon_unknown.dwarf_32e241::Target_x86_64<32>::gc_process_relocs
          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_false> *object,uint data_shndx,uint sh_type,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,bool needs_special_offset_handling,
          size_t param_10,uchar *plocal_symbols)

{
  _Base_ptr *pp_Var1;
  byte bVar2;
  byte bVar3;
  pointer puVar4;
  pointer ppSVar5;
  _Base_ptr p_Var6;
  Target *pTVar7;
  Garbage_collection *pGVar8;
  undefined4 *puVar9;
  _func_int_varargs *p_Var10;
  char *pcVar11;
  Icf *pIVar12;
  code *pcVar13;
  Parameters *pPVar14;
  size_t sVar15;
  _func_int_varargs **pp_Var16;
  Xindex *pXVar17;
  pointer pcVar18;
  int iVar19;
  _Rb_tree_header *p_Var20;
  _Base_ptr p_Var21;
  _Rb_tree_header *p_Var22;
  char cVar23;
  General_options *extraout_EDX;
  General_options *extraout_EDX_00;
  General_options *pGVar24;
  General_options *extraout_EDX_01;
  _Alloc_hider _Var25;
  General_options *extraout_EDX_02;
  General_options *extraout_EDX_03;
  General_options *extraout_EDX_04;
  General_options *extraout_EDX_05;
  General_options *extraout_EDX_06;
  General_options *extraout_EDX_07;
  Relobj *pRVar26;
  uint uVar27;
  undefined4 *puVar28;
  General_options **ppGVar29;
  Addend_info *unaff_ESI;
  undefined **ppuVar30;
  byte *pbVar31;
  Addend_info *pAVar32;
  uint uVar33;
  _func_int_varargs **pp_Var34;
  _Alloc_hider _Var35;
  bool bVar36;
  bool bVar37;
  bool bVar38;
  byte bVar39;
  pair<std::__detail::_Node_iterator<std::pair<gold::Relobj*,_unsigned_int>,_true,_true>,_bool>
  pVar40;
  General_options *pGStack_f0;
  undefined1 auStack_ec [4];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_e8;
  __node_gen_type *local_e4;
  Reloc_addend_size_info *local_e0;
  Addend_info *local_dc;
  Relobj *local_d8;
  size_t local_d4;
  undefined1 *local_d0;
  Offset_info *local_cc;
  Symbol_info *local_c8;
  _func_int_varargs **local_c4;
  mapped_type *local_c0;
  Parameters **local_bc;
  bool local_b7;
  char local_b6;
  byte local_b5;
  General_options *local_b4;
  Output_segment *local_b0;
  pointer local_ac;
  Relobj *local_a8;
  undefined **local_a4;
  Icf *local_a0;
  code *local_9c;
  _Rb_tree_header *local_98;
  undefined1 local_94 [8];
  __node_gen_type __node_gen_2;
  __node_gen_type __node_gen_3;
  __node_gen_type __node_gen_1;
  section_size_type stype;
  section_size_type stype_1;
  __node_gen_type __node_gen;
  Section_id *local_74;
  Icf *local_70;
  Sized_relobj_file<32,_false> *local_6c;
  uint local_68;
  Output_segment *local_64;
  Relobj *local_60;
  Section_id src_id_1;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  pointer local_2c;
  _Alloc_hider local_28;
  
  bVar39 = 0;
  local_a4 = &_GLOBAL_OFFSET_TABLE_;
  if (sh_type == 9) {
    return;
  }
  local_bc = &gold::parameters;
  pGVar24 = gold::parameters->options_;
  if (pGVar24 == (General_options *)0x0) {
    pGStack_f0 = pGVar24;
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (pGVar24->icf_status_ == ICF_NONE) {
    local_e8 = &src_section_name.field_2;
    pGStack_f0 = (General_options *)0x0;
    src_section_name._M_dataplus._M_p = (pointer)local_e8;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    ppGVar29 = (General_options **)auStack_ec;
  }
  else {
    (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_e8 = &src_section_name.field_2;
    ppGVar29 = &pGStack_f0;
  }
  _Var35._M_p = src_section_name._M_dataplus._M_p;
  pPVar14 = *local_bc;
  _Var25._M_p = (pointer)pPVar14->options_;
  if ((General_options *)_Var25._M_p == (General_options *)0x0) {
    *(Parameters **)((int)ppGVar29 + -4) = pPVar14;
    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7ad;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
               *(char **)((int)ppGVar29 + -8));
  }
  if (((General_options *)_Var25._M_p)->icf_status_ == ICF_NONE) {
LAB_0008e94f:
    local_b6 = '\0';
    local_e0 = (Reloc_addend_size_info *)0x0;
    local_cc = (Offset_info *)0x0;
    local_dc = (Addend_info *)0x0;
    local_c8 = (Symbol_info *)0x0;
    local_c0 = (mapped_type *)0x0;
  }
  else {
    local_a8 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar18 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f537;
      sVar15 = strlen(*(char **)((int)ppGVar29 + -0x10));
      pcVar18 = _Var35._M_p + sVar15;
    }
    *(undefined4 *)((int)ppGVar29 + -4) = 0;
    *(pointer *)((int)ppGVar29 + -8) = pcVar18;
    local_a0 = (Icf *)&src_id;
    *(pointer *)((int)ppGVar29 + -0xc) = _Var35._M_p;
    *(Icf **)((int)ppGVar29 + -0x10) = local_a0;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f54f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar19 = 5;
    bVar36 = (undefined1 *)0xffffffef < (undefined1 *)((int)ppGVar29 + -0x10);
    bVar38 = ppGVar29 == (General_options **)0x0;
    ppuVar30 = local_a4 + -0x67293;
    pRVar26 = src_id.first;
    do {
      if (iVar19 == 0) break;
      iVar19 = iVar19 + -1;
      bVar2 = *(byte *)&(pRVar26->super_Object)._vptr_Object;
      bVar36 = *(byte *)ppuVar30 < bVar2;
      bVar38 = *(byte *)ppuVar30 == bVar2;
      ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);
      pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);
    } while (bVar38);
    bVar37 = false;
    bVar36 = (!bVar36 && !bVar38) == bVar36;
    if (!bVar36) {
      iVar19 = 0xf;
      pAVar32 = (Addend_info *)((int)local_a4 + -0x19ca46);
      pRVar26 = src_id.first;
      do {
        unaff_ESI = pAVar32;
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        unaff_ESI = (Addend_info *)((int)pAVar32 + (uint)bVar39 * -2 + 1);
        bVar3 = *(byte *)&(pRVar26->super_Object)._vptr_Object;
        bVar2 = *(byte *)&(pAVar32->
                          super__Vector_base<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                          )._M_impl._M_start;
        bVar37 = bVar2 < bVar3;
        bVar36 = bVar2 == bVar3;
        pAVar32 = unaff_ESI;
        pRVar26 = (Relobj *)((int)pRVar26 + (uint)bVar39 * -2 + 1);
      } while (bVar36);
      if ((!bVar37 && !bVar36) != bVar37) {
        if (src_id.first == local_a8) {
          pPVar14 = *local_bc;
          _Var25._M_p = (pointer)src_id.first;
        }
        else {
          *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6cb;
          operator_delete(*(void **)((int)ppGVar29 + -0x10));
          pPVar14 = *local_bc;
          _Var25._M_p = (pointer)extraout_EDX_07;
        }
        goto LAB_0008e94f;
      }
    }
    if (src_id.first != local_a8) {
      *(Relobj **)((int)ppGVar29 + -0x10) = src_id.first;
      *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f801;
      operator_delete(*(void **)((int)ppGVar29 + -0x10));
    }
    *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_a0 = symtab->icf_;
    *(Reloc_info_list **)((int)ppGVar29 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f5c8;
    local_c0 = std::__detail::
               _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
               ::operator[](*(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
                              **)((int)ppGVar29 + -0x10),*(key_type **)((int)ppGVar29 + -0xc));
    local_c8 = &local_c0->symbol_info;
    unaff_ESI = &local_c0->addend_info;
    local_e0 = &local_c0->reloc_addend_size_info;
    local_dc = unaff_ESI;
    local_cc = &local_c0->offset_info;
    pPVar14 = *local_bc;
    local_b6 = '\x01';
    _Var25._M_p = (pointer)extraout_EDX_06;
  }
  if (pPVar14->options_ == (General_options *)0x0) {
    *(Addend_info **)((int)ppGVar29 + -4) = unaff_ESI;
    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7c9;
    gold::do_gold_unreachable
              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
               *(char **)((int)ppGVar29 + -8));
  }
  local_b7 = false;
  if (pPVar14->options_->icf_status_ == ICF_SAFE) {
    *(Target_x86_64<32> **)((int)ppGVar29 + -0x10) = this;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f45b;
    local_b7 = Target_x86_64<64>::do_can_check_for_function_pointers
                         (*(Target_x86_64<64> **)((int)ppGVar29 + -0x10));
    bVar36 = false;
    bVar38 = !local_b7;
    _Var25._M_p = (pointer)extraout_EDX_05;
    if (!bVar38) {
      iVar19 = 0xc;
      local_b7 = false;
      ppuVar30 = local_a4 + -0x66894;
      _Var25 = src_section_name._M_dataplus;
      do {
        if (iVar19 == 0) break;
        iVar19 = iVar19 + -1;
        bVar36 = *(byte *)ppuVar30 < (byte)*_Var25._M_p;
        bVar38 = *(byte *)ppuVar30 == *_Var25._M_p;
        ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);
        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (uint)bVar39 * -2 + 1);
      } while (bVar38);
      bVar37 = false;
      bVar36 = (!bVar36 && !bVar38) == bVar36;
      _Var25 = src_section_name._M_dataplus;
      if (!bVar36) {
        iVar19 = 0x11;
        pbVar31 = (byte *)((int)local_a4 + -0x19a243);
        _Var35 = src_section_name._M_dataplus;
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar37 = *pbVar31 < (byte)*_Var35._M_p;
          bVar36 = *pbVar31 == *_Var35._M_p;
          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
          _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
        } while (bVar36);
        bVar38 = false;
        bVar36 = (!bVar37 && !bVar36) == bVar37;
        if (!bVar36) {
          iVar19 = 0xc;
          pbVar31 = (byte *)((int)local_a4 + -0x19a231);
          _Var35 = src_section_name._M_dataplus;
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar38 = *pbVar31 < (byte)*_Var35._M_p;
            bVar36 = *pbVar31 == *_Var35._M_p;
            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
            _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
          } while (bVar36);
          bVar37 = false;
          bVar36 = (!bVar38 && !bVar36) == bVar38;
          if (!bVar36) {
            iVar19 = 0x11;
            ppuVar30 = local_a4 + -0x66889;
            _Var35 = src_section_name._M_dataplus;
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar37 = *(byte *)ppuVar30 < (byte)*_Var35._M_p;
              bVar36 = *(byte *)ppuVar30 == *_Var35._M_p;
              ppuVar30 = (undefined **)((int)ppuVar30 + (uint)bVar39 * -2 + 1);
              _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
            } while (bVar36);
            bVar38 = false;
            bVar36 = (!bVar37 && !bVar36) == bVar37;
            if (!bVar36) {
              iVar19 = 9;
              pbVar31 = (byte *)((int)local_a4 + -0x19a212);
              _Var35 = src_section_name._M_dataplus;
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                bVar38 = *pbVar31 < (byte)*_Var35._M_p;
                bVar36 = *pbVar31 == *_Var35._M_p;
                pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
                _Var35._M_p = (pointer)((byte *)_Var35._M_p + (uint)bVar39 * -2 + 1);
              } while (bVar36);
              local_b7 = (!bVar38 && !bVar36) != bVar38;
            }
          }
        }
      }
    }
  }
  if (reloc_count != 0) {
    local_c4 = (_func_int_varargs **)0x0;
    local_d0 = local_94;
    local_d4 = 0;
    local_e4 = &__node_gen;
    do {
      uVar33 = *(uint *)(prelocs + 4) & 0xff;
      uVar27 = *(uint *)(prelocs + 4) >> 8;
      local_ac = *(pointer *)(prelocs + 8);
      if (uVar27 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)ppGVar29 + -0xc) = 0xea;
          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f6fc;
          gold::do_gold_unreachable
                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                     *(char **)((int)ppGVar29 + -8));
        }
        local_a8 = (Relobj *)(uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);
        if (local_a8 < (Relobj *)0xff00) {
LAB_0008eb4e:
          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);
          local_b4 = (General_options *)((int)&local_ac->first + (int)pRVar26);
          if (local_b6 != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_a8;
            *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;
            *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;
            local_a0 = (Icf *)&src_id;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8eb93;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                         **)((int)ppGVar29 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));
            local_b0 = (Output_segment *)CONCAT31(local_b0._1_3_,1);
            if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 3) goto LAB_0008ea48;
LAB_0008ebac:
            *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebc7;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));
            goto LAB_0008ea63;
          }
        }
        else {
          if (local_a8 == (Relobj *)0xffff) {
            pXVar17 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;
            if (pXVar17 == (Xindex *)0x0) {
              pp_Var16 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                         _vptr_Object;
              *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0x10) = object;
              p_Var10 = pp_Var16[0x1b];
              *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2ce;
              pXVar17 = (Xindex *)(*p_Var10)();
              (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = pXVar17;
            }
            *(uint *)((int)ppGVar29 + -8) = uVar27;
            *(Sized_relobj_file<32,_false> **)((int)ppGVar29 + -0xc) = object;
            *(Xindex **)((int)ppGVar29 + -0x10) = pXVar17;
                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ec49;
            local_a8 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)ppGVar29 + -0x10),
                                  *(Object **)((int)ppGVar29 + -0xc),*(uint *)((int)ppGVar29 + -8));
            _Var25._M_p = (pointer)extraout_EDX_00;
            goto LAB_0008eb4e;
          }
          pRVar26 = *(Relobj **)(plocal_symbols + uVar27 * 0x10 + 4);
          local_b4 = (General_options *)((int)&(*(pointer *)(prelocs + 8))->first + (int)pRVar26);
          if (local_b6 == '\0') goto LAB_0008eae9;
          src_id.first = (Relobj *)0x0;
          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;
          src_id.second = 0;
          local_a0 = (Icf *)&src_id;
                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea2f;
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));
          local_b0 = (Output_segment *)((uint)local_b0 & 0xffffff00);
          if ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) == 3) goto LAB_0008ebac;
LAB_0008ea48:
          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
          *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;
          src_id.first = (Relobj *)0x0;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea63;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                      ((int)ppGVar29 + -0x10),*(Symbol ***)((int)ppGVar29 + -0xc));
LAB_0008ea63:
          src_id.first = pRVar26;
          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;
          local_2c = local_ac;
          src_id.second = 0;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ea93;
          std::
          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
          ::emplace_back<std::pair<long_long_int,_long_long_int>_>
                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));
          src_id.second = 0;
          puVar4 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = *(Relobj **)prelocs;
          if (puVar4 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppGVar29 + -8) = local_a0;
            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;
            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f2b5;
            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)
                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),
                       *(ulonglong **)((int)ppGVar29 + -8));
          }
          else {
            *(Relobj **)puVar4 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar4 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar4 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ead9;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));
          _Var25._M_p = (pointer)extraout_EDX;
          if ((char)local_b0 == '\0') goto LAB_0008eae9;
        }
        if ((local_b7 != false) && ((plocal_symbols[uVar27 * 0x10 + 0xc] & 0xf) != 1)) {
          if ((*local_bc)->options_ == (General_options *)0x0) {
            *(pointer *)((int)ppGVar29 + -4) = _Var25._M_p;
            *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
            *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f775;
            gold::do_gold_unreachable
                      (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                       *(char **)((int)ppGVar29 + -8));
          }
          if (((*local_bc)->options_->shared_).value == false) {
            if (uVar33 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)((int)local_a4 + (int)local_a4[uVar33 - 0x65eef]))();
              return;
            }
          }
          else {
            local_a0 = symtab->icf_;
            local_68 = (uint)*(ushort *)(plocal_symbols + uVar27 * 0x10 + 0xe);
            *(undefined4 *)((int)ppGVar29 + -0xc) = 1;
            *(undefined4 *)((int)ppGVar29 + -0x10) = 0;
            __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
            *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_2;
            *(Sized_relobj_file<32,_false> ***)((int)ppGVar29 + -0x18) = &local_6c;
            *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_2._M_h;
            *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;
            local_6c = object;
            *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f1a5;
            pVar40 = std::
                     _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                     ::
                     _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                               ();
            _Var25._M_p = pVar40._4_4_;
            ppGVar29 = (General_options **)((int)ppGVar29 + -4);
          }
        }
        if ((Relobj *)data_shndx != local_a8) {
          local_b0 = (Output_segment *)object;
          puVar28 = ppGVar29;
LAB_0008ee30:
          if ((*local_bc)->options_ == (General_options *)0x0) {
            puVar28[-2] = local_a4 + -0x65b32;
            puVar28[-3] = 0x5c;
            puVar28[-4] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar28[-5] = 0x8f71a;
            gold::do_gold_unreachable((char *)puVar28[-4],puVar28[-3],(char *)puVar28[-2]);
          }
          ppGVar29 = (General_options **)puVar28;
          if (((*local_bc)->options_->gc_sections_).value != false) {
            src_id_1.first = (Relobj *)object;
            p_Var22 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            src_id_1.second = data_shndx;
            dst_id.first = (Relobj *)local_b0;
            dst_id.second = (uint)local_a8;
            p_Var6 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var21 = &p_Var22->_M_header;
            if (p_Var6 == (_Base_ptr)0x0) {
LAB_0008eec0:
              puVar28[-4] = &local_74;
              local_74 = &src_id_1;
              puVar28[-5] = 0x8eedb;
              std::
              _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
              ::
              _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>
                        ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                          *)puVar28[-4],(_Base_ptr)puVar28[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-2],
                         (tuple<> *)puVar28[-1],(piecewise_construct_t *)*puVar28);
              p_Var20 = local_98;
            }
            else {
              do {
                while ((p_Var20 = (_Rb_tree_header *)p_Var6,
                       object <= (Sized_relobj_file<32,_false> *)
                                 ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color &&
                       ((object != (Sized_relobj_file<32,_false> *)
                                   ((_Base_ptr)((int)p_Var20 + 0x10))->_M_color ||
                        (data_shndx <= ((size_t *)((int)p_Var20 + 0x10))[1]))))) {
                  p_Var6 = (p_Var20->_M_header)._M_left;
                  p_Var21 = &p_Var20->_M_header;
                  if ((p_Var20->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008eeaa;
                }
                pp_Var1 = &(p_Var20->_M_header)._M_right;
                p_Var6 = *pp_Var1;
                p_Var20 = (_Rb_tree_header *)p_Var21;
              } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0008eeaa:
              if (((p_Var22 == p_Var20) ||
                  (object < (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count)) ||
                 ((object == (Sized_relobj_file<32,_false> *)p_Var20->_M_node_count &&
                  (data_shndx < *(uint *)(p_Var20 + 1))))) goto LAB_0008eec0;
            }
            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var20 + 1) + 4);
            puVar28[-3] = 1;
            puVar28[-4] = 0;
            puVar28[-5] = local_e4;
            puVar28[-6] = &dst_id;
            puVar28[-7] = __node_gen._M_h;
            puVar28[-8] = local_d0;
            puVar28[-9] = 0x8ef07;
            std::
            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
            ::
            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                      ();
            pTVar7 = (*local_bc)->target_;
            if (pTVar7 == (Target *)0x0) {
              puVar28[-3] = local_a4 + -0x65c0e;
              puVar28[-4] = 0x73;
              puVar28[-5] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              puVar28[-6] = 0x8f759;
              gold::do_gold_unreachable((char *)puVar28[-5],puVar28[-4],(char *)puVar28[-3]);
            }
            _Var25._M_p = (pointer)pTVar7->_vptr_Target[0x41];
            if ((General_options *)_Var25._M_p != (General_options *)(local_a4 + -0x15e474)) {
              puVar28[-3] = local_b4;
              puVar28[-4] = local_a8;
              puVar28[-5] = local_b0;
              puVar28[-6] = data_shndx;
              puVar28[-7] = object;
              puVar28[-8] = symtab;
              puVar28[-9] = pTVar7;
              puVar28[-10] = 0x8f0b1;
              (*(code *)_Var25._M_p)();
              _Var25._M_p = (pointer)extraout_EDX_02;
            }
            pp_Var16 = local_c4;
            ppGVar29 = (General_options **)(puVar28 + -1);
            if (local_c4 != (_func_int_varargs **)0x0) {
              local_a8 = (Relobj *)&local_2c;
              pGVar8 = symtab->gc_;
              puVar28[-5] = local_c4;
              local_a0 = (Icf *)&src_id;
              src_id.first = (Relobj *)&local_2c;
              puVar28[-6] = 0x8ef76;
              sVar15 = strlen((char *)puVar28[-5]);
              pIVar12 = local_a0;
              puVar28[-2] = 0;
              puVar28[-3] = (byte *)((int)pp_Var16 + sVar15);
              puVar28[-4] = pp_Var16;
              puVar28[-5] = local_a0;
              puVar28[-6] = 0x8ef8b;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar28[-3] = pIVar12;
              puVar28[-4] = &pGVar8->cident_sections_;
              puVar28[-5] = &local_9c;
              puVar28[-6] = 0x8ef9f;
              std::
              _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
              ::find((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                      *)puVar28[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar28[-4]);
              pcVar13 = local_9c;
              if (src_id.first != local_a8) {
                puVar28[-6] = src_id.first;
                puVar28[-7] = 0x8efc2;
                operator_delete((void *)puVar28[-6]);
              }
              ppGVar29 = (General_options **)(puVar28 + -2);
              _Var25._M_p = (pointer)symtab->gc_;
              if ((One_option *)pcVar13 !=
                  &(((General_options *)_Var25._M_p)->version_initializer_).super_Struct_special.
                   option) {
                pcVar11 = (((General_options *)_Var25._M_p)->help_initializer_).super_Struct_special
                          .option.longname.field_2._M_local_buf + 8;
                src_id.first = (Relobj *)object;
                src_id.second = data_shndx;
                p_Var6 = *(_Base_ptr *)
                          ((int)&(((General_options *)_Var25._M_p)->help_initializer_).
                                 super_Struct_special.option.longname.field_2 + 0xc);
                p_Var21 = (_Base_ptr)pcVar11;
                if (p_Var6 == (_Base_ptr)0x0) {
LAB_0008f0f8:
                  puVar28[-6] = &local_70;
                  local_70 = local_a0;
                  puVar28[-7] = 0x8f116;
                  std::
                  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                  ::
                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>
                            ((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                              *)puVar28[-6],(_Base_ptr)puVar28[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar28[-4],
                             (tuple<> *)puVar28[-3],(piecewise_construct_t *)puVar28[-2]);
                  p_Var22 = local_98;
                  _Var25._M_p = (pointer)extraout_EDX_03;
                }
                else {
                  do {
                    while ((p_Var22 = (_Rb_tree_header *)p_Var6,
                           object <= (Sized_relobj_file<32,_false> *)
                                     ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color &&
                           ((object != (Sized_relobj_file<32,_false> *)
                                       ((_Base_ptr)((int)p_Var22 + 0x10))->_M_color ||
                            (data_shndx <= ((size_t *)((int)p_Var22 + 0x10))[1]))))) {
                      p_Var6 = (p_Var22->_M_header)._M_left;
                      p_Var21 = &p_Var22->_M_header;
                      if ((p_Var22->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008f022;
                    }
                    pp_Var1 = &(p_Var22->_M_header)._M_right;
                    p_Var6 = *pp_Var1;
                    p_Var22 = (_Rb_tree_header *)p_Var21;
                  } while (*pp_Var1 != (_Base_ptr)0x0);
LAB_0008f022:
                  if (((p_Var22 == (_Rb_tree_header *)pcVar11) ||
                      (object < (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count)) ||
                     ((object == (Sized_relobj_file<32,_false> *)p_Var22->_M_node_count &&
                      (data_shndx < *(uint *)(p_Var22 + 1))))) goto LAB_0008f0f8;
                }
                ppGVar29 = (General_options **)(puVar28 + -2);
                puVar28 = puVar28 + -2;
                for (puVar9 = *(undefined4 **)(pcVar13 + 0x30); puVar9 != (undefined4 *)0x0;
                    puVar9 = (undefined4 *)*puVar9) {
                  *(undefined4 *)((int)puVar28 + -0xc) = 1;
                  *(undefined4 *)((int)puVar28 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar28 + -0x14) = &__node_gen_1;
                  *(undefined4 **)((int)puVar28 + -0x18) = puVar9 + 1;
                  *(char **)((int)puVar28 + -0x1c) = (char *)((int)(p_Var22 + 1) + 4);
                  *(undefined1 **)((int)puVar28 + -0x20) = local_d0;
                  *(undefined4 *)((int)puVar28 + -0x24) = 0x8f07b;
                  __node_gen_1._M_h = (__hashtable_alloc *)((int)(p_Var22 + 1) + 4);
                  pVar40 = std::
                           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                           ::
                           _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                                     ();
                  _Var25._M_p = pVar40._4_4_;
                  ppGVar29 = (General_options **)((int)puVar28 + -4);
                  puVar28 = (undefined4 *)((int)puVar28 + -4);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar27 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_0008f237:
          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x11c;
          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)ppGVar29 + -0x14) = &UNK_0008f258;
          gold::do_gold_unreachable
                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                     *(char **)((int)ppGVar29 + -8));
        }
        uVar27 = uVar27 - object->local_symbol_count_;
        pGVar24 = (General_options *)
                  (object->symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        local_a0 = (Icf *)(object->symbols_).
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                          _M_finish;
        if ((uint)((int)local_a0 - (int)pGVar24 >> 2) <= uVar27) {
          *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65c2b;
          *(undefined4 *)((int)ppGVar29 + -0xc) = 0x8ad;
          *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f73b;
          gold::do_gold_unreachable
                    (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                     *(char **)((int)ppGVar29 + -8));
        }
        src_id_1.first = *(Relobj **)((int)pGVar24 + uVar27 * 4);
        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008f237;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)ppGVar29 + -0xc) = src_id_1.first;
          *(Symbol_table **)((int)ppGVar29 + -0x10) = symtab;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f222;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)ppGVar29 + -0x10),
                          *(Symbol **)((int)ppGVar29 + -0xc));
          pGVar24 = extraout_EDX_04;
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b0 = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          pGVar24 = (General_options *)((int)&local_ac->first + (int)local_d8);
          local_b4 = pGVar24;
          bVar36 = false;
          bVar38 = ((uint)local_b0->output_lists_[3].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_end_of_storage & 1) == 0;
          if (bVar38) {
            local_a8 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            pGVar24 = (General_options *)((byte)((src_id_1.first)->super_Object).shnum_ & 0xf);
            local_b5 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar36 = (byte)pGVar24 < 2;
            bVar38 = (byte)pGVar24 == 2;
            if (bVar38) {
              bVar36 = false;
              bVar38 = local_b7 == false;
              if (!bVar38) {
                if (local_b5 != 0) {
                  pGVar24 = (*local_bc)->options_;
                  if (pGVar24 == (General_options *)0x0) {
                    *(Relobj **)((int)ppGVar29 + -4) = src_id_1.first;
                    *(undefined ***)((int)ppGVar29 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)((int)ppGVar29 + -0xc) = 0x5c;
                    *(int *)((int)ppGVar29 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f7e5;
                    gold::do_gold_unreachable
                              (*(char **)((int)ppGVar29 + -0x10),*(int *)((int)ppGVar29 + -0xc),
                               *(char **)((int)ppGVar29 + -8));
                  }
                  if (((pGVar24->shared_).value == false) ||
                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {
                    bVar36 = uVar33 < 0x2a;
                    bVar38 = uVar33 == 0x2a;
                    if (uVar33 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[uVar33 - 0x65ec4] + (int)local_a4))();
                      return;
                    }
                    goto _L7547;
                  }
                }
                local_a0 = symtab->icf_;
                *(undefined4 *)((int)ppGVar29 + -0xc) = 1;
                *(undefined4 *)((int)ppGVar29 + -0x10) = 0;
                *(__node_gen_type **)((int)ppGVar29 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)ppGVar29 + -0x18) = &local_64;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
                *(__hashtable_alloc **)((int)ppGVar29 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)ppGVar29 + -0x20) = local_d0;
                *(undefined4 *)((int)ppGVar29 + -0x24) = 0x8f43e;
                local_64 = local_b0;
                local_60 = local_a8;
                pVar40 = std::
                         _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                         ::
                         _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                                   ();
                pGVar24 = pVar40._4_4_;
                bVar36 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)ppGVar29 + -0x20);
                bVar38 = ppGVar29 == (General_options **)0x4;
                ppGVar29 = (General_options **)((int)ppGVar29 + -4);
              }
            }
          }
          else {
            local_b5 = 0;
            local_a8 = (Relobj *)0x0;
            local_b0 = (Output_segment *)0x0;
          }
        }
        else {
          local_d8 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b5 = 0;
          local_a8 = (Relobj *)0x0;
          bVar36 = CARRY4((uint)local_ac,(uint)local_d8);
          local_b4 = (General_options *)((int)&local_ac->first + (int)local_d8);
          bVar38 = local_b4 == (General_options *)0x0;
          local_b0 = (Output_segment *)0x0;
        }
_L7547:
        pp_Var16 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar19 = 8;
        pbVar31 = (byte *)((int)local_a4 + -0x19ca26);
        pp_Var34 = pp_Var16;
        do {
          if (iVar19 == 0) break;
          iVar19 = iVar19 + -1;
          bVar36 = *pbVar31 < *(byte *)pp_Var34;
          bVar38 = *pbVar31 == *(byte *)pp_Var34;
          pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
          pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);
        } while (bVar38);
        bVar37 = false;
        bVar36 = (!bVar36 && !bVar38) == bVar36;
        if (bVar36) {
          local_c4 = pp_Var16 + 2;
          cVar23 = '\0';
        }
        else {
          iVar19 = 7;
          pbVar31 = (byte *)((int)local_a4 + -0x19ca1d);
          pp_Var34 = pp_Var16;
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar37 = *pbVar31 < *(byte *)pp_Var34;
            bVar36 = *pbVar31 == *(byte *)pp_Var34;
            pbVar31 = pbVar31 + (uint)bVar39 * -2 + 1;
            pp_Var34 = (_func_int_varargs **)((int)pp_Var34 + (uint)bVar39 * -2 + 1);
          } while (bVar36);
          cVar23 = (!bVar37 && !bVar36) - bVar37;
          pp_Var16 = (_func_int_varargs **)((int)pp_Var16 + 7);
          if (cVar23 != '\0') {
            pp_Var16 = local_c4;
          }
          local_c4 = pp_Var16;
        }
        _Var25._M_p = (pointer)CONCAT31((int3)((uint)pGVar24 >> 8),cVar23);
        if (local_b6 != '\0') {
          if (local_b5 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_b0;
            src_id.second = (uint)local_a8;
          }
          *(Icf **)((int)ppGVar29 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)ppGVar29 + -0x10) = local_c0;
          local_a0 = (Icf *)&src_id;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ed86;
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)ppGVar29 + -0xc));
          ppSVar5 = (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                    _M_impl._M_finish;
          if (ppSVar5 ==
              (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)ppGVar29 + -8) = &src_id_1;
            *(pointer *)((int)ppGVar29 + -0xc) = ppSVar5;
            *(Symbol_info **)((int)ppGVar29 + -0x10) = local_c8;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f393;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)ppGVar29 + -0x10),(iterator)*(Symbol ***)((int)ppGVar29 + -0xc),
                       *(Symbol ***)((int)ppGVar29 + -8));
          }
          else {
            *ppSVar5 = (Symbol *)src_id_1.first;
            (local_c8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar5 + 1;
          }
          *(Icf **)((int)ppGVar29 + -0xc) = local_a0;
          *(Addend_info **)((int)ppGVar29 + -0x10) = local_dc;
          src_id.first = local_d8;
          src_id.second = 0;
          local_2c = local_ac;
          local_28._M_p = (pointer)((int)local_ac >> 0x1f);
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8edda;
          std::
          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
          ::emplace_back<std::pair<long_long_int,_long_long_int>_>
                    (*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
                       **)((int)ppGVar29 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)ppGVar29 + -0xc));
          src_id.second = 0;
          puVar4 = (local_cc->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          src_id.first = *(Relobj **)prelocs;
          if (puVar4 == (local_cc->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)ppGVar29 + -8) = local_a0;
            *(pointer *)((int)ppGVar29 + -0xc) = puVar4;
            *(Offset_info **)((int)ppGVar29 + -0x10) = local_cc;
            *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8f3b5;
            std::vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      (*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)
                        ((int)ppGVar29 + -0x10),(iterator)*(ulonglong **)((int)ppGVar29 + -0xc),
                       *(ulonglong **)((int)ppGVar29 + -8));
          }
          else {
            *(Relobj **)puVar4 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar4 + 4) = 0;
            (local_cc->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar4 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)ppGVar29 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)ppGVar29 + -0x10) = local_e0;
          *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ee20;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)
                      ((int)ppGVar29 + -0x10),*(uint **)((int)ppGVar29 + -0xc));
          _Var25._M_p = (pointer)extraout_EDX_01;
        }
        puVar28 = ppGVar29;
        if (local_b5 != 0) goto LAB_0008ee30;
      }
LAB_0008eae9:
      local_d4 = local_d4 + 1;
      prelocs = prelocs + 0xc;
    } while (reloc_count != local_d4);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)src_section_name._M_dataplus._M_p != local_e8) {
    *(pointer *)((int)ppGVar29 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)ppGVar29 + -0x14) = 0x8ebea;
    operator_delete(*(void **)((int)ppGVar29 + -0x10));
  }
  return;
}


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

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

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

{
  code cVar1;
  undefined4 *puVar2;
  byte *pbVar3;
  int iVar4;
  code **ppcVar5;
  size_t sVar6;
  uint uVar7;
  code *pcVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  undefined4 extraout_EDX;
  undefined4 uVar12;
  undefined4 extraout_EDX_00;
  undefined **ppuVar13;
  undefined4 extraout_EDX_01;
  undefined **extraout_EDX_02;
  int extraout_EDX_03;
  undefined4 extraout_EDX_04;
  undefined4 extraout_EDX_05;
  undefined4 extraout_EDX_06;
  code *extraout_EDX_07;
  uint uVar14;
  undefined1 *puVar15;
  int *piVar16;
  code *unaff_ESI;
  int iVar17;
  byte *pbVar18;
  uint uVar19;
  byte *pbVar20;
  code *pcVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  undefined8 uVar26;
  ulonglong uVar27;
  longlong lVar28;
  int iStack_f0;
  undefined1 auStack_ec [4];
  code *local_e8;
  code **local_e4;
  int local_e0;
  code *local_dc;
  code *local_d8;
  int local_d4;
  undefined1 *local_d0;
  int local_cc;
  int local_c8;
  byte *local_c4;
  undefined4 local_c0;
  int *local_bc;
  char local_b7;
  char local_b6;
  byte local_b5;
  code *local_b4;
  code *local_b0;
  uint local_ac;
  code *local_a8;
  undefined **local_a4;
  code **local_a0;
  code *local_9c;
  int local_98;
  undefined1 local_94 [8];
  code **local_8c;
  code **local_88;
  code *local_84 [3];
  code *local_78;
  code **local_74;
  code **local_70;
  code *local_6c;
  uint local_68;
  code *local_64;
  code *local_60;
  code *local_5c;
  code *local_58;
  code *local_54;
  code *local_50;
  code *local_4c [2];
  undefined1 local_44 [16];
  code *local_34;
  code *local_30;
  uint local_2c;
  int local_28;
  
  bVar25 = 0;
  local_a4 = &__DT_PLTGOT;
  if (param_6 == 9) {
    return;
  }
  local_bc = &DAT_005ea7c8;
  iVar17 = *(int *)(DAT_005ea7c8 + 8);
  if (iVar17 == 0) {
    iStack_f0 = iVar17;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(iVar17 + 0x5934) == 0) {
    local_e8 = (code *)local_44;
    iStack_f0 = 0;
    local_4c[0] = local_e8;
    FUN_00072b90(local_4c,"","");
    piVar16 = (int *)auStack_ec;
  }
  else {
    (**(code **)(*(uint *)param_4 + 0x40))(local_4c,param_4,param_5);
    local_e8 = (code *)local_44;
    piVar16 = &iStack_f0;
  }
  pcVar21 = local_4c[0];
  iVar17 = *local_bc;
  pcVar8 = *(code **)(iVar17 + 8);
  if (pcVar8 == (code *)0x0) {
    *(int *)((int)piVar16 + -4) = iVar17;
    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008f7a8 to 0008f7e4 has its CatchHandler @ 0008f809 */
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7ad;
    FUN_002446e0();
  }
  if (*(uint *)(pcVar8 + 0x5934) == 0) {
LAB_0008e94f:
    local_b6 = '\0';
    local_e0 = 0;
    local_cc = 0;
    local_dc = (code *)0x0;
    local_c8 = 0;
    lVar28 = ZEXT48(pcVar8) << 0x20;
  }
  else {
    local_a8 = (code *)&local_2c;
    local_34 = local_a8;
    pcVar8 = (code *)0xffffffff;
    if (local_4c[0] != (code *)0x0) {
      *(code **)((int)piVar16 + -0x10) = local_4c[0];
      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f537;
      sVar6 = strlen(*(char **)((int)piVar16 + -0x10));
      pcVar8 = pcVar21 + sVar6;
    }
    *(undefined4 *)((int)piVar16 + -4) = 0;
    *(code **)((int)piVar16 + -8) = pcVar8;
    local_a0 = &local_34;
    *(code **)((int)piVar16 + -0xc) = pcVar21;
    *(code ***)((int)piVar16 + -0x10) = local_a0;
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f54f;
    FUN_00072b90();
    iVar17 = 5;
    bVar22 = (undefined1 *)0xffffffef < (undefined1 *)((int)piVar16 + -0x10);
    bVar24 = piVar16 == (int *)0x0;
    ppuVar13 = local_a4 + -0x67293;
    pcVar8 = local_34;
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;
      bVar24 = *(code *)ppuVar13 == *pcVar8;
      ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);
      pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
    } while (bVar24);
    bVar23 = false;
    bVar22 = (!bVar22 && !bVar24) == bVar22;
    if (!bVar22) {
      iVar17 = 0xf;
      pcVar8 = (code *)((int)local_a4 + -0x19ca46);
      pcVar21 = local_34;
      do {
        unaff_ESI = pcVar8;
        if (iVar17 == 0) break;
        iVar17 = iVar17 + -1;
        unaff_ESI = pcVar8 + (uint)bVar25 * -2 + 1;
        bVar23 = (byte)*pcVar8 < (byte)*pcVar21;
        bVar22 = *pcVar8 == *pcVar21;
        pcVar8 = unaff_ESI;
        pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
      } while (bVar22);
      if ((!bVar23 && !bVar22) != bVar23) {
        if (local_34 == local_a8) {
          iVar17 = *local_bc;
          pcVar8 = local_34;
        }
        else {
          *(code **)((int)piVar16 + -0x10) = local_34;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6cb;
          FUN_003ae080();
          iVar17 = *local_bc;
          pcVar8 = extraout_EDX_07;
        }
        goto LAB_0008e94f;
      }
    }
    if (local_34 != local_a8) {
      *(code **)((int)piVar16 + -0x10) = local_34;
      *(undefined4 *)((int)piVar16 + -0x14) = 0x8f801;
      FUN_003ae080();
    }
    *(code ***)((int)piVar16 + -0xc) = local_a0;
    local_34 = param_4;
    local_30 = param_5;
    local_a0 = *(code ***)(param_2 + 0x15c);
    *(code ***)((int)piVar16 + -0x10) = local_a0 + 0x15;
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f5c8;
    lVar28 = FUN_00074520();
    local_e0 = (int)lVar28;
    local_c8 = local_e0 + 0xc;
    local_cc = local_e0 + 0x24;
    unaff_ESI = (code *)(local_e0 + 0x18);
    local_e0 = local_e0 + 0x30;
    iVar17 = *local_bc;
    local_b6 = '\x01';
    local_dc = unaff_ESI;
  }
  local_c0 = (undefined4)lVar28;
  if (*(int *)(iVar17 + 8) == 0) {
    *(code **)((int)piVar16 + -4) = unaff_ESI;
    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7c9;
    FUN_002446e0();
  }
  local_b7 = '\0';
  if (*(int *)(*(int *)(iVar17 + 8) + 0x5934) == 2) {
    *(undefined4 *)((int)piVar16 + -0x10) = param_1;
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f45b;
    local_b7 = FUN_000752e0();
    bVar22 = false;
    bVar24 = local_b7 == '\0';
    lVar28 = CONCAT44(extraout_EDX_06,local_c0);
    if (!bVar24) {
      iVar17 = 0xc;
      local_b7 = '\0';
      ppuVar13 = local_a4 + -0x66894;
      pcVar8 = local_4c[0];
      do {
        if (iVar17 == 0) break;
        iVar17 = iVar17 + -1;
        bVar22 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;
        bVar24 = *(code *)ppuVar13 == *pcVar8;
        ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);
        pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
      } while (bVar24);
      bVar23 = false;
      bVar22 = (!bVar22 && !bVar24) == bVar22;
      lVar28 = CONCAT44(local_4c[0],local_c0);
      if (!bVar22) {
        iVar17 = 0x11;
        pcVar8 = (code *)((int)local_a4 + -0x19a243);
        pcVar21 = local_4c[0];
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar23 = (byte)*pcVar8 < (byte)*pcVar21;
          bVar22 = *pcVar8 == *pcVar21;
          pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
          pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
        } while (bVar22);
        bVar24 = false;
        bVar22 = (!bVar23 && !bVar22) == bVar23;
        lVar28 = CONCAT44(local_4c[0],local_c0);
        if (!bVar22) {
          iVar17 = 0xc;
          pcVar8 = (code *)((int)local_a4 + -0x19a231);
          pcVar21 = local_4c[0];
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar24 = (byte)*pcVar8 < (byte)*pcVar21;
            bVar22 = *pcVar8 == *pcVar21;
            pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
            pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          bVar23 = false;
          bVar22 = (!bVar24 && !bVar22) == bVar24;
          lVar28 = CONCAT44(local_4c[0],local_c0);
          if (!bVar22) {
            iVar17 = 0x11;
            ppuVar13 = local_a4 + -0x66889;
            pcVar8 = local_4c[0];
            do {
              if (iVar17 == 0) break;
              iVar17 = iVar17 + -1;
              bVar23 = (byte)*(code *)ppuVar13 < (byte)*pcVar8;
              bVar22 = *(code *)ppuVar13 == *pcVar8;
              ppuVar13 = (undefined **)((int)ppuVar13 + (uint)bVar25 * -2 + 1);
              pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
            } while (bVar22);
            bVar24 = false;
            bVar22 = (!bVar23 && !bVar22) == bVar23;
            lVar28 = CONCAT44(local_4c[0],local_c0);
            if (!bVar22) {
              iVar17 = 9;
              pcVar8 = (code *)((int)local_a4 + -0x19a212);
              pcVar21 = local_4c[0];
              do {
                if (iVar17 == 0) break;
                iVar17 = iVar17 + -1;
                bVar24 = (byte)*pcVar8 < (byte)*pcVar21;
                bVar22 = *pcVar8 == *pcVar21;
                pcVar8 = pcVar8 + (uint)bVar25 * -2 + 1;
                pcVar21 = pcVar21 + (uint)bVar25 * -2 + 1;
              } while (bVar22);
              local_b7 = (!bVar24 && !bVar22) != bVar24;
              lVar28 = CONCAT44(local_4c[0],local_c0);
            }
          }
        }
      }
    }
  }
  local_c0 = (undefined4)lVar28;
  if (param_8 != 0) {
    local_c4 = (byte *)0x0;
    local_d0 = local_94;
    local_e4 = &local_78;
    local_d4 = 0;
    do {
      local_c0 = (undefined4)lVar28;
      uVar19 = param_7[1] & 0xff;
      uVar14 = (uint)param_7[1] >> 8;
      local_ac = param_7[2];
      if (uVar14 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)piVar16 + -0xc) = 0xea;
          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f6fc;
          FUN_002446e0();
        }
        iVar17 = uVar14 * 0x10 + param_12;
        local_a8 = (code *)(uint)*(ushort *)(iVar17 + 0xe);
        uVar26 = CONCAT44((int)((ulonglong)lVar28 >> 0x20),local_a8);
        if (local_a8 < (code *)0xff00) {
LAB_0008eb4e:
          local_a8 = (code *)uVar26;
          pcVar8 = *(code **)(iVar17 + 4);
          local_b4 = pcVar8 + local_ac;
          if (local_b6 != '\0') {
            local_34 = param_4;
            local_30 = local_a8;
            local_a0 = &local_34;
            *(code ***)((int)piVar16 + -0xc) = local_a0;
            *(undefined4 *)((int)piVar16 + -0x10) = local_c0;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8eb93;
            FUN_00073b00();
            local_b0 = (code *)CONCAT31(local_b0._1_3_,1);
            if ((*(byte *)(iVar17 + 0xc) & 0xf) != 3) goto LAB_0008ea48;
LAB_0008ebac:
            *(code ***)((int)piVar16 + -0xc) = local_a0;
            *(int *)((int)piVar16 + -0x10) = local_c8;
            local_34 = (code *)0xffffffff;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebc7;
            FUN_00073ca0();
            goto LAB_0008ea63;
          }
        }
        else {
          if (local_a8 == (code *)0xffff) {
            uVar7 = *(uint *)(param_4 + 0x30);
            if (uVar7 == 0) {
              uVar7 = *(uint *)param_4;
              *(code **)((int)piVar16 + -0x10) = param_4;
              pcVar8 = *(code **)(uVar7 + 0x6c);
              *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2ce;
              uVar7 = (*pcVar8)();
              *(uint *)(param_4 + 0x30) = uVar7;
            }
            *(uint *)((int)piVar16 + -8) = uVar14;
            *(code **)((int)piVar16 + -0xc) = param_4;
            *(uint *)((int)piVar16 + -0x10) = uVar7;
                    /* try { // try from 0008ec44 to 0008f774 has its CatchHandler @ 0008f809 */
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8ec49;
            uVar26 = FUN_0028b7d0();
            goto LAB_0008eb4e;
          }
          pcVar8 = *(code **)(iVar17 + 4);
          local_b4 = pcVar8 + local_ac;
          if (local_b6 == '\0') goto LAB_0008eae9;
          local_a0 = &local_34;
          local_34 = (code *)0x0;
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;
          local_30 = (code *)0x0;
                    /* try { // try from 0008ea2a to 0008ebc6 has its CatchHandler @ 0008f809 */
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea2f;
          FUN_00073b00();
          local_b0 = (code *)((uint)local_b0 & 0xffffff00);
          if ((*(byte *)(iVar17 + 0xc) & 0xf) == 3) goto LAB_0008ebac;
LAB_0008ea48:
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(int *)((int)piVar16 + -0x10) = local_c8;
          local_34 = (code *)0x0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea63;
          FUN_00073ca0();
LAB_0008ea63:
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(code **)((int)piVar16 + -0x10) = local_dc;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          local_30 = (code *)0x0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ea93;
          local_34 = pcVar8;
          FUN_00073e70();
          local_30 = (code *)0x0;
          local_34 = (code *)*param_7;
          puVar2 = *(undefined4 **)(local_cc + 4);
          if (puVar2 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)piVar16 + -8) = local_a0;
            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;
            *(int *)((int)piVar16 + -0x10) = local_cc;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f2b5;
            FUN_00072a40();
          }
          else {
            *puVar2 = local_34;
            puVar2[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar2 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)piVar16 + -0xc) = &local_54;
          *(int *)((int)piVar16 + -0x10) = local_e0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ead9;
          FUN_00074020();
          uVar26 = CONCAT44(extraout_EDX,local_a8);
          lVar28 = CONCAT44(extraout_EDX,local_c0);
          if ((char)local_b0 == '\0') goto LAB_0008eae9;
        }
        local_a8 = (code *)uVar26;
        if ((local_b7 != '\0') && ((*(byte *)(iVar17 + 0xc) & 0xf) != 1)) {
          if (*(int *)(*local_bc + 8) == 0) {
            *(int *)((int)piVar16 + -4) = (int)((ulonglong)uVar26 >> 0x20);
            *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
            *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f775;
            FUN_002446e0();
          }
          if (*(char *)(*(int *)(*local_bc + 8) + 0x1a25) == '\0') {
            if (uVar19 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f2f6. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)((int)local_a4 + (int)local_a4[uVar19 - 0x65eef]))();
              return;
            }
          }
          else {
            local_a0 = *(code ***)(param_2 + 0x15c);
            local_68 = (uint)*(ushort *)(iVar17 + 0xe);
            *(undefined4 *)((int)piVar16 + -0xc) = 1;
            *(undefined4 *)((int)piVar16 + -0x10) = 0;
            local_8c = local_a0 + 0xd;
            *(code ****)((int)piVar16 + -0x14) = &local_8c;
            *(code ***)((int)piVar16 + -0x18) = &local_6c;
            *(code ***)((int)piVar16 + -0x1c) = local_8c;
            *(undefined1 **)((int)piVar16 + -0x20) = local_d0;
            local_6c = param_4;
            *(undefined4 *)((int)piVar16 + -0x24) = 0x8f1a5;
            FUN_00074280();
            uVar26 = CONCAT44(extraout_EDX_04,local_a8);
            piVar16 = (int *)((int)piVar16 + -4);
          }
        }
        local_a8 = (code *)uVar26;
        lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);
        if (param_5 != local_a8) {
          local_b0 = param_4;
          puVar15 = (undefined1 *)piVar16;
LAB_0008ee30:
          local_a8 = (code *)uVar26;
          lVar28 = CONCAT44((int)((ulonglong)uVar26 >> 0x20),local_c0);
          if (*(int *)(*local_bc + 8) == 0) {
            *(undefined ***)(puVar15 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)(puVar15 + -0xc) = 0x5c;
            *(int *)(puVar15 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar15 + -0x14) = 0x8f71a;
            FUN_002446e0();
          }
          piVar16 = (int *)puVar15;
          if (*(char *)(*(int *)(*local_bc + 8) + 0x18b1) != '\0') {
            local_5c = param_4;
            iVar17 = *(int *)(param_2 + 0x158) + 0x14;
            local_58 = param_5;
            local_54 = local_b0;
            local_50 = local_a8;
            iVar4 = *(int *)(*(int *)(param_2 + 0x158) + 0x18);
            iVar9 = iVar17;
            if (iVar4 == 0) {
LAB_0008eec0:
              local_74 = &local_5c;
              *(code ****)(puVar15 + -0x10) = &local_74;
              *(undefined4 *)(puVar15 + -0x14) = 0x8eedb;
              FUN_0007da50();
              iVar10 = local_98;
            }
            else {
              do {
                while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&
                       ((param_4 != *(code **)(iVar10 + 0x10) ||
                        (param_5 <= *(code **)(iVar10 + 0x14)))))) {
                  iVar4 = *(int *)(iVar10 + 8);
                  iVar9 = iVar10;
                  if (*(int *)(iVar10 + 8) == 0) goto LAB_0008eeaa;
                }
                piVar16 = (int *)(iVar10 + 0xc);
                iVar4 = *piVar16;
                iVar10 = iVar9;
              } while (*piVar16 != 0);
LAB_0008eeaa:
              if (((iVar17 == iVar10) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                 ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14)))))
              goto LAB_0008eec0;
            }
            local_78 = (code *)(iVar10 + 0x18);
            *(undefined4 *)(puVar15 + -0xc) = 1;
            *(undefined4 *)(puVar15 + -0x10) = 0;
            *(code ***)(puVar15 + -0x14) = local_e4;
            *(code ***)(puVar15 + -0x18) = &local_54;
            *(code **)(puVar15 + -0x1c) = local_78;
            *(undefined1 **)(puVar15 + -0x20) = local_d0;
            *(undefined4 *)(puVar15 + -0x24) = 0x8ef07;
            FUN_00074340();
            piVar16 = *(int **)(*local_bc + 0xc);
            if (piVar16 == (int *)0x0) {
              *(undefined ***)(puVar15 + -0xc) = local_a4 + -0x65c0e;
              *(undefined4 *)(puVar15 + -0x10) = 0x73;
              *(int *)(puVar15 + -0x14) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar15 + -0x18) = 0x8f759;
              FUN_002446e0();
            }
            ppuVar13 = *(undefined ***)(*piVar16 + 0x104);
            if (ppuVar13 != local_a4 + -0x15e474) {
              *(code **)(puVar15 + -0xc) = local_b4;
              *(code **)(puVar15 + -0x10) = local_a8;
              *(code **)(puVar15 + -0x14) = local_b0;
              *(code **)(puVar15 + -0x18) = param_5;
              *(code **)(puVar15 + -0x1c) = param_4;
              *(int *)(puVar15 + -0x20) = param_2;
              *(int **)(puVar15 + -0x24) = piVar16;
              *(undefined4 *)(puVar15 + -0x28) = 0x8f0b1;
              (*(code *)ppuVar13)();
              ppuVar13 = extraout_EDX_02;
            }
            pbVar3 = local_c4;
            lVar28 = CONCAT44(ppuVar13,local_c0);
            piVar16 = (int *)(puVar15 + -4);
            if (local_c4 != (byte *)0x0) {
              local_a8 = (code *)&local_2c;
              local_a0 = &local_34;
              iVar17 = *(int *)(param_2 + 0x158);
              *(byte **)(puVar15 + -0x14) = local_c4;
              local_34 = local_a8;
              *(undefined4 *)(puVar15 + -0x18) = 0x8ef76;
              sVar6 = strlen(*(char **)(puVar15 + -0x14));
              ppcVar5 = local_a0;
              *(undefined4 *)(puVar15 + -8) = 0;
              *(byte **)(puVar15 + -0xc) = pbVar3 + sVar6;
              *(byte **)(puVar15 + -0x10) = pbVar3;
              *(code ***)(puVar15 + -0x14) = local_a0;
              *(undefined4 *)(puVar15 + -0x18) = 0x8ef8b;
              FUN_00072b90();
              *(code ***)(puVar15 + -0xc) = ppcVar5;
              *(int *)(puVar15 + -0x10) = iVar17 + 0x44;
              *(code ***)(puVar15 + -0x14) = &local_9c;
              *(undefined4 *)(puVar15 + -0x18) = 0x8ef9f;
              FUN_00094bd0();
              pcVar8 = local_9c;
              if (local_34 != local_a8) {
                *(code **)(puVar15 + -0x18) = local_34;
                *(undefined4 *)(puVar15 + -0x1c) = 0x8efc2;
                FUN_003ae080();
              }
              piVar16 = (int *)(puVar15 + -8);
              iVar17 = *(int *)(param_2 + 0x158);
              lVar28 = CONCAT44(iVar17,local_c0);
              if (pcVar8 != (code *)(iVar17 + 0x48)) {
                local_34 = param_4;
                local_30 = param_5;
                iVar4 = *(int *)(iVar17 + 0x18);
                iVar9 = iVar17 + 0x14;
                if (*(int *)(iVar17 + 0x18) == 0) {
LAB_0008f0f8:
                  *(code ****)(puVar15 + -0x18) = &local_70;
                  local_70 = local_a0;
                  *(undefined4 *)(puVar15 + -0x1c) = 0x8f116;
                  FUN_0007da50();
                  iVar10 = local_98;
                  iVar17 = extraout_EDX_03;
                }
                else {
                  do {
                    while ((iVar10 = iVar4, param_4 <= *(code **)(iVar10 + 0x10) &&
                           ((param_4 != *(code **)(iVar10 + 0x10) ||
                            (param_5 <= *(code **)(iVar10 + 0x14)))))) {
                      iVar4 = *(int *)(iVar10 + 8);
                      iVar9 = iVar10;
                      if (*(int *)(iVar10 + 8) == 0) goto LAB_0008f022;
                    }
                    piVar16 = (int *)(iVar10 + 0xc);
                    iVar4 = *piVar16;
                    iVar10 = iVar9;
                  } while (*piVar16 != 0);
LAB_0008f022:
                  if (((iVar10 == iVar17 + 0x14) || (param_4 < *(code **)(iVar10 + 0x10))) ||
                     ((param_4 == *(code **)(iVar10 + 0x10) && (param_5 < *(code **)(iVar10 + 0x14))
                      ))) goto LAB_0008f0f8;
                }
                lVar28 = CONCAT44(iVar17,local_c0);
                piVar16 = (int *)(puVar15 + -8);
                puVar15 = puVar15 + -8;
                for (puVar2 = *(undefined4 **)(pcVar8 + 0x30); puVar2 != (undefined4 *)0x0;
                    puVar2 = (undefined4 *)*puVar2) {
                  *(undefined4 *)(puVar15 + -0xc) = 1;
                  *(undefined4 *)(puVar15 + -0x10) = 0;
                  *(code ***)(puVar15 + -0x14) = local_84;
                  *(undefined4 **)(puVar15 + -0x18) = puVar2 + 1;
                  *(code **)(puVar15 + -0x1c) = (code *)(iVar10 + 0x18);
                  *(undefined1 **)(puVar15 + -0x20) = local_d0;
                  *(undefined4 *)(puVar15 + -0x24) = 0x8f07b;
                  local_84[0] = (code *)(iVar10 + 0x18);
                  FUN_00074340();
                  lVar28 = CONCAT44(extraout_EDX_01,local_c0);
                  piVar16 = (int *)(puVar15 + -4);
                  puVar15 = puVar15 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (uVar14 < *(uint *)(param_4 + 0xb0)) {
          local_5c = (code *)0x0;
LAB_0008f237:
          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65ca7;
          *(undefined4 *)((int)piVar16 + -0xc) = 0x11c;
          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)piVar16 + -0x14) = &UNK_0008f258;
          FUN_002446e0();
        }
        uVar14 = uVar14 - *(uint *)(param_4 + 0xb0);
        uVar7 = *(uint *)(param_4 + 0xbc);
        local_a0 = *(code ***)(param_4 + 0xc0);
        if ((uint)((int)((int)local_a0 - uVar7) >> 2) <= uVar14) {
          *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65c2b;
          *(undefined4 *)((int)piVar16 + -0xc) = 0x8ad;
          *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f73b;
          FUN_002446e0();
        }
        local_5c = *(code **)(uVar7 + uVar14 * 4);
        uVar27 = CONCAT44(uVar7,local_5c);
        if (local_5c == (code *)0x0) goto LAB_0008f237;
        if (((byte)local_5c[0x2a] & 0x10) != 0) {
          *(code **)((int)piVar16 + -0xc) = local_5c;
          *(int *)((int)piVar16 + -0x10) = param_2;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8f222;
          uVar27 = FUN_0034cd90();
        }
        local_5c = (code *)uVar27;
        if (((byte)local_5c[0x2a] & 7) == 0) {
          local_d8 = *(code **)(local_5c + 0x30);
          local_b0 = *(code **)(local_5c + 8);
          local_b4 = local_d8 + local_ac;
          bVar22 = false;
          bVar24 = ((byte)local_b0[0x2c] & 1) == 0;
          if (bVar24) {
            cVar1 = local_5c[0x28];
            local_a8 = *(code **)(local_5c + 0xc);
            local_b5 = (byte)local_5c[0x2b] >> 5 & 1;
            bVar22 = ((byte)cVar1 & 0xf) < 2;
            bVar24 = ((byte)cVar1 & 0xf) == 2;
            uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
            if (bVar24) {
              bVar22 = false;
              bVar24 = local_b7 == '\0';
              uVar27 = (ulonglong)CONCAT14(cVar1,local_5c) & 0xfffffffff;
              if (!bVar24) {
                if (local_b5 != 0) {
                  iVar17 = *(int *)(*local_bc + 8);
                  if (iVar17 == 0) {
                    *(code **)((int)piVar16 + -4) = local_5c;
                    *(undefined ***)((int)piVar16 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)((int)piVar16 + -0xc) = 0x5c;
                    *(int *)((int)piVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)((int)piVar16 + -0x14) = 0x8f7e5;
                    FUN_002446e0();
                  }
                  if ((*(char *)(iVar17 + 0x1a25) == '\0') || (((byte)local_5c[0x29] & 3) == 0)) {
                    bVar22 = uVar19 < 0x2a;
                    bVar24 = uVar19 == 0x2a;
                    uVar27 = CONCAT44(iVar17,local_5c);
                    if (uVar19 < 0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008f628. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[uVar19 - 0x65ec4] + (int)local_a4))();
                      return;
                    }
                    goto LAB_0008ed18;
                  }
                }
                local_a0 = *(code ***)(param_2 + 0x15c);
                *(undefined4 *)((int)piVar16 + -0xc) = 1;
                *(undefined4 *)((int)piVar16 + -0x10) = 0;
                *(code ****)((int)piVar16 + -0x14) = &local_88;
                *(code ***)((int)piVar16 + -0x18) = &local_64;
                local_88 = local_a0 + 0xd;
                *(code ***)((int)piVar16 + -0x1c) = local_88;
                *(undefined1 **)((int)piVar16 + -0x20) = local_d0;
                *(undefined4 *)((int)piVar16 + -0x24) = 0x8f43e;
                local_64 = local_b0;
                local_60 = local_a8;
                FUN_00074280();
                bVar22 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)piVar16 + -0x20);
                bVar24 = piVar16 == (int *)0x4;
                piVar16 = (int *)((int)piVar16 + -4);
                uVar27 = CONCAT44(extraout_EDX_05,local_5c);
              }
            }
          }
          else {
            local_b5 = 0;
            local_a8 = (code *)0x0;
            local_b0 = (code *)0x0;
            uVar27 = CONCAT44(local_b4,local_5c);
          }
        }
        else {
          local_d8 = *(code **)(local_5c + 0x30);
          local_b5 = 0;
          local_a8 = (code *)0x0;
          bVar22 = CARRY4(local_ac,(uint)local_d8);
          local_b4 = local_d8 + local_ac;
          bVar24 = local_b4 == (code *)0x0;
          local_b0 = (code *)0x0;
        }
LAB_0008ed18:
        local_5c = (code *)uVar27;
        pbVar3 = *(byte **)local_5c;
        iVar17 = 8;
        pbVar18 = (byte *)((int)local_a4 + -0x19ca26);
        pbVar20 = pbVar3;
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar24 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar24) == bVar22;
        if (bVar22) {
          cVar11 = '\0';
          pbVar3 = pbVar3 + 8;
        }
        else {
          iVar17 = 7;
          pbVar18 = (byte *)((int)local_a4 + -0x19ca1d);
          pbVar20 = pbVar3;
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar23 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          cVar11 = (!bVar23 && !bVar22) - bVar23;
          pbVar3 = pbVar3 + 7;
          if (cVar11 != '\0') {
            pbVar3 = local_c4;
          }
        }
        local_c4 = pbVar3;
        uVar12 = CONCAT31((int3)(uVar27 >> 0x28),cVar11);
        if (local_b6 != '\0') {
          if (local_b5 == 0) {
            local_34 = (code *)0x0;
            local_30 = (code *)0x0;
          }
          else {
            local_34 = local_b0;
            local_30 = local_a8;
          }
          local_a0 = &local_34;
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(undefined4 *)((int)piVar16 + -0x10) = local_c0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ed86;
          FUN_00073b00();
          puVar2 = *(undefined4 **)(local_c8 + 4);
          if (puVar2 == *(undefined4 **)(local_c8 + 8)) {
            *(code ***)((int)piVar16 + -8) = &local_5c;
            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;
            *(int *)((int)piVar16 + -0x10) = local_c8;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f393;
            FUN_000726c0();
          }
          else {
            *puVar2 = local_5c;
            *(undefined4 **)(local_c8 + 4) = puVar2 + 1;
          }
          *(code ***)((int)piVar16 + -0xc) = local_a0;
          *(code **)((int)piVar16 + -0x10) = local_dc;
          local_34 = local_d8;
          local_30 = (code *)0x0;
          local_2c = local_ac;
          local_28 = (int)local_ac >> 0x1f;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8edda;
          FUN_00073e70();
          local_30 = (code *)0x0;
          local_34 = (code *)*param_7;
          puVar2 = *(undefined4 **)(local_cc + 4);
          if (puVar2 == *(undefined4 **)(local_cc + 8)) {
            *(code ***)((int)piVar16 + -8) = local_a0;
            *(undefined4 **)((int)piVar16 + -0xc) = puVar2;
            *(int *)((int)piVar16 + -0x10) = local_cc;
            *(undefined4 *)((int)piVar16 + -0x14) = 0x8f3b5;
            FUN_00072a40();
          }
          else {
            *puVar2 = local_34;
            puVar2[1] = 0;
            *(undefined4 **)(local_cc + 4) = puVar2 + 2;
          }
          local_54 = (code *)0x0;
          *(code ***)((int)piVar16 + -0xc) = &local_54;
          *(int *)((int)piVar16 + -0x10) = local_e0;
          *(undefined4 *)((int)piVar16 + -0x14) = 0x8ee20;
          FUN_00074020();
          uVar12 = extraout_EDX_00;
        }
        uVar26 = CONCAT44(uVar12,local_a8);
        lVar28 = CONCAT44(uVar12,local_c0);
        puVar15 = (undefined1 *)piVar16;
        if (local_b5 != 0) goto LAB_0008ee30;
      }
LAB_0008eae9:
      local_c0 = (undefined4)lVar28;
      local_d4 = local_d4 + 1;
      param_7 = param_7 + 3;
    } while (param_8 != local_d4);
  }
  if (local_4c[0] != local_e8) {
    *(code **)((int)piVar16 + -0x10) = local_4c[0];
    *(undefined4 *)((int)piVar16 + -0x14) = 0x8ebea;
    FUN_003ae080();
  }
  return;
}

